クローラーで取ってきたHTMLを解析するのにはBeautifulSoupが使うとよい。
簡単な使い方のメモ。
バージョン
BeautifulSoupは3と4がありますが
現在はBeautiful Soup3は終了していてBeautiful Soup4が主流。
Webをみていると3の使い方が多いので注意。
そしてPython3はBS3が使えない。
インポート
まずはインポート。
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()
score=datas2[2].find("h5").get_text()
ここでは1番目と2番目にあるh5タグを抽出している。
これまでだとタグと本文を含めてまとめて抽出されるので、
本文だけを取りだしたい場合はget_text()を利用。
また、タグ内の属性情報を取り出したいときはget('href')など指定することで可能。
タグ名を取りだしたいときは .nameで取れる。