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...
Hallo, ich heiße Bürgermeister Umemura. Vielen Dank. Ich schreibe auf Englisch und Japanisch, weil es auch dazu dient, Englisch zu lernen, aber ich hoffe, Sie werden die Hässlichkeit des Englischen im Auge behalten. Ich studiere derzeit maschinelles Lernen und als Teil meiner praktischen Erfahrung baue ich ein automatisches Tagging-System für Artikel mit Basian. Es gibt jedoch viele neue Dinge zu lernen, und die Straße von Senri ist nur einen Schritt entfernt, also mache ich es stetig.
Das heutige Thema ist also die Extraktion von Artikeln, die zum Lernen und Beurteilen verwendet werden, das sogenannte Scraping. Sie finden Artikel an verschiedenen Orten mit heißen Themen. Es gab einen guten Artikel, nach dem ich neulich gesucht habe, den ich aber versehentlich vergessen habe. Ich möchte es später noch einmal spannen. Der Inhalt des Artikels führte also zwei Methoden ein, um nur den Hauptteil des Artikels zu extrahieren, wobei Kopf- und Fußzeile der Zielseite ignoriert wurden.
Eine besteht darin, das Box-Tag des Artikelkörpers entsprechend dem Format der Site zu registrieren und zu extrahieren. Zum Beispiel im Fall von Hatena Blog.
<div class=entry-contents>
CONTENTS to SCRAPE!
</div>
Also habe ich das folgende Skript geschrieben, um den Inhalt von diesem Typen zu extrahieren.
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'))
Das ist alles, was ich tun kann, weil ich denke, dass der Code wahrscheinlich hässlich ist. Bei dieser Methode müssen Sie also das charakteristische Gehäuse jeder Site registrieren. Wenn dies problematisch ist, verwenden Sie das Erlernen der zweiten Methode. Ich glaube, sie wurde im obigen Artikel geschrieben. Machen. Es ist jedoch ein schwieriger Ort mit der aktuellen Fähigkeit.
Ich möchte dieses Skript serialisieren, bis es abgeschlossen ist.
Recommended Posts