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スクレイピングに挑戦してみましょう。
![[Python]翻訳を使ったデータ処理!Pandasで多言語を扱う方法](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-452.jpg)
![[Python]Pandasで条件指定して特定の文字を含む行を削除する](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-54.jpg)



