BeautifulSoupとは何か
BeautifulSoupは、Pythonのライブラリの1つで、Webスクレイピングに特化したものです。Web上にあるHTMLやXMLのデータを解析し、必要な情報を取得することができます。
BeautifulSoupのインストール方法
BeautifulSoupを使用するには、まずPythonのバージョンを確認し、pipを使ってインストールします。
$ pip install beautifulsoup4
BeautifulSoupを使ったHTMLの解析
BeautifulSoupを使うと、HTMLの解析が簡単に行えます。まずはHTMLデータを取得し、BeautifulSoupに渡します。
from bs4 import BeautifulSoup html = """ <html> <head> <title>Webページのタイトル</title> </head> <body> <p>Webページの本文</p> </body> </html>""" soup = BeautifulSoup(html, 'html.parser')
上記の例では、HTMLの解析には’html.parser’を使用しています。他にも、’lxml’や’html5lib’といったパーサーを使用することもできます。
BeautifulSoupで特定のタグを抽出する方法
BeautifulSoupを使って、特定のタグを抽出するには、find_allメソッドを使用します。
from bs4 import BeautifulSoup html = """ <html> <head> <title>Webページのタイトル</title> </head> <body> <p>Webページの本文</p> </body> </html>""" soup = BeautifulSoup(html, 'html.parser') p_tags = soup.find_all('p') for p in p_tags: print(p)
上記の例では、HTML内の全てのpタグを取得しています。find_allメソッドはリスト型で返されるため、for文を使って1つずつ取り出す必要があります。
BeautifulSoupで特定のクラスやIDを持つ要素を抽出する方法
BeautifulSoupを使って、特定のクラスやIDを持つ要素を抽出するには、CSSセレクタを使用します。
from bs4 import BeautifulSoup html = """ <html> <head> <title>Webページのタイトル</title> </head> <body> <p class="main">Webページの本文</p> <p class="sub">Webページのサブタイトル</p> <p id="footer">Webページのフッター</p> </body> </html>""" soup = BeautifulSoup(html, 'html.parser') main_p = soup.select('p.main') sub_p = soup.select('p.sub') footer_p = soup.select('p#footer') print(main_p) print(sub_p) print(footer_p)
上記の例では、classが’main’のpタグ、classが’sub’のpタグ、idが’footer’のpタグをそれぞれ取得しています。
BeautifulSoupでスクレイピングしたデータを保存する方法
BeautifulSoupでスクレイピングしたデータを保存するには、ファイルに書き出すか、データベースに保存する方法があります。
ファイルに書き出す場合は、open関数を使ってファイルを開き、書き込みモードで保存します。
from bs4 import BeautifulSoup html = """ <html> <head> <title>Webページのタイトル</title> </head> <body> <p class="main">Webページの本文</p> <p class="sub">Webページのサブタイトル</p> <p id="footer">Webページのフッター</p> </body> </html>""" soup = BeautifulSoup(html, 'html.parser') with open('output.txt', 'w') as f: for p in soup.find_all('p'): f.write(p.text + '\n')
上記の例では、pタグのテキストを1行ずつファイルに書き出しています。
まとめ
BeautifulSoupを使えば、Webスクレイピングが簡単に行えます。HTMLの解析や特定のタグやクラス、IDを持つ要素の抽出、そしてデータの保存ができるようになりました。これらの基本をマスターして、Webスクレイピングに挑戦してみましょう。