Hi, this is Bython Chogo. I have to learn English so I try to post article both English and Japanese :(
Now studying Machine Learning and practicing test scripting with Bayesian filtering. my plan is to estimate tag from web posted contents after learning several posts and tags. Bayesian sample script can be got from Gihyo web page, I'll introduce later, before that today's topic and problem to talk is scraping contents from post.
I found good slide to describe what I'd like to say however I've lost ... orz. Will add it later. Regarding the article, there is two way to scrape body contents. One is using characterized format of each contents. I don't need header or footer date for learning words because it may not useful for identifying the tag.
As a example, I try to scrape only article on Hatena Blog, the article is between the below tags.
<div class=entry-contents>
CONTENTS to SCRAPE!
</div>
this case, I wrote below code.
soup = BeautifulSoup( html, "lxml" )
soup.originalEnoding
tag = soup.find("div", {"class": "entry-content"})
text = ""
for con in tag.contents:
p = re.compile(r'<.*?>')
text += p.sub('', con.encode('utf8'))
Looks not cool.. but it works :( Also I have to prepare all format I will scrape. This is very tired. So second way is to use learning method! But this looks difficult for me.
To be continued...
Bonjour, je m'appelle le maire Umemura. Je vous remercie. J'écris en anglais et en japonais car cela sert aussi à apprendre l'anglais, mais j'espère que vous garderez un œil sur la laideur de l'anglais. J'étudie actuellement l'apprentissage automatique et dans le cadre de mon expérience pratique, je crée un système de marquage automatique des articles utilisant Basian. Cependant, il y a beaucoup de nouvelles choses à apprendre en le faisant, et la route de Senri n'est qu'à un pas, donc je le fais régulièrement.
Ainsi, le sujet d'aujourd'hui est l'extraction d'articles utilisés pour l'apprentissage et le jugement, ce qu'on appelle le grattage. Vous pouvez trouver des articles dans divers endroits avec des thèmes chauds. Il y avait un bon article que j'ai cherché l'autre jour, mais j'ai oublié par inadvertance. Je voudrais le retendre plus tard. Ainsi, le contenu de l'article a introduit deux méthodes pour extraire uniquement le corps de l'article, en ignorant l'en-tête et le pied de page de la page cible.
La première consiste à enregistrer et à extraire la balise box du corps de l'article de manière régulière en fonction du format du site. Par exemple, dans le cas de Hatena Blog.
<div class=entry-contents>
CONTENTS to SCRAPE!
</div>
Donc, j'ai écrit le script suivant pour extraire le contenu de ce gars.
soup = BeautifulSoup( html, "lxml" )
soup.originalEnoding
tag = soup.find("div", {"class": "entry-content"})
text = ""
for con in tag.contents:
p = re.compile(r'<.*?>')
text += p.sub('', con.encode('utf8'))
C'est tout ce que je peux faire, pensant que le code est probablement moche. Donc, avec cette méthode, vous devez enregistrer l'enceinte caractéristique de chaque site, et si cela est gênant, utilisez l'apprentissage de la deuxième méthode, j'ai l'impression que cela a été écrit dans l'article ci-dessus. Faire. Cependant, c'est un endroit difficile avec la capacité actuelle.
Je voudrais sérialiser ce script jusqu'à ce qu'il soit terminé.
Recommended Posts