BeautifulsoupでWebスクレイピングをしよう!【Python】
・Webスクレイピングとは
スクレイピングとは、Webサイトからデータをえて、任意の情報を抽出できるので大変便利です。
Pythonでスクレイピングするのに欠かせないライブラリが【BeautifulSoup】。
このBeautifulSoupを使うと手軽にHTMLやXMLから情報を抽出でき解析をする事ができるのですが、あくまでも解析するライブラリなのでダウンロードをする際はurllibを使うことになる。
・BeautifulSoupの基本的な使い方
HTMLを文字列で指定し、その文字列を解析し任意の部分を抽出して表示する。
beautifulsoup_base.py
#ライブラリを取り込む from bs4 import BeautifulSoup #解析したいHTMLを指定 html=''' <html><body> <h1>スクレイピングとは?</h1> <p>Webページを解析する事。</p> <p>任意の箇所を抽出する事</p> </body></html> ''' #HTMLを解析する #Beautifulsoupの第一引数にHTMLを指定、第二引数に解析を行うパーサーの種類を指定 #HTMLを解析するには、'html.parser'という値を指定する soup=BeautifulSoup(html,'html.parser') #任意の部分を抽出する #HTMLの構造と同じように(.)で繋げて書く #「soup.html.body.h1」と書くことで、<html><body><h1>の値にアクセスする事ができる #最初のpも同じだが、次のpは「p1.next_sibling.next_sibling」と書く。 #1回目のnext_siblingでは</p>の直後の改行やスペースが得られ、2回目のnext_siblingで2つ目のpタグにアクセスする。 h1=soup.html.body.h1 p1=soup.html.body.p p2=p1.next_sibling.next_sibling #要素のテキストを抽出する print('h1='+h1.string) print('p1='+p1.string) print('p2='+p2.string)
コマンドライン(実行)
$ python beautifulsoup_base.py h1=スクレイピングとは? p1=Webページを回移籍する事。 p2=任意の箇所を抽出する事