BeautifulSoupの第一歩


クローラーで取ってきたHTMLを解析するのにBeautifulSoupが使いやすそうだったので使ってみました。以下は簡単な使い方のメモ。

バージョン


BeautifulSoupは3と4がありますが
現在はBeautiful Soup3は終了していてBeautiful Soup4が主流とのこと。
Webをみていると3の使い方が多いので注意。
そしてPython3はBS3が使えないです。

インポート


まずはインポート。
BeautifulSoup4は以下の書き方になります。
from bs4 import BeautifulSoup


まずは全文抽出


まずは、以下のように書くことでhtmlの全文が保存されます。
datas = BeautifulSoup(datas)



findで指定のタグを抽出


次にfind文で指定のタグを抽出できます。
今回はfindAll文を使うことで、html中の指定のタグを抽出しました。
以下ではdivタグのresult classを抽出。
datas2 = datas.findAll("div", attrs={"class": "result"})



さらに下層の情報取得とテキスト抽出


ここで抽出された情報は配列となっているので、
さらにそこから抽出したい情報があれば配列番号でアクセス。
result_name=datas2[1].find("h5").get_text().replace(' ','')
score=datas2[2].find("h5").get_text()

ここでは1番目と2番目にあるh5タグを抽出しています。
これまでだとタグと本文を含めてまとめて抽出されるので、
本文だけを取りだしたい場合はget_text()を利用。

また、タグ内の属性情報を取り出したいときはget('href')など指定することで可能です。
タグ名を取りだしたいときは .nameで取れます。

このエントリーをはてなブックマークに追加