BeautifulSoupを使ったHTMLパース – Pythonで始めるプログラミング
プログラミングを始める際に、HTMLをパースする技術は非常に重要です。BeautifulSoupはPythonでHTMLを解析するための便利なライブラリです。これを使うことで、簡単にHTMLから必要な情報を抽出できます。本記事では、BeautifulSoupを使ってHTMLをパースする方法について説明します。
BeautifulSoupのインストール
まず初めに、BeautifulSoupをインストールする必要があります。これにはpipを使用します。
pip install beautifulsoup4
基本的な使い方
BeautifulSoupを使ってHTMLをパースする基本的な方法は次の通りです。以下のコードは、例として簡単なHTMLをパースします。
from bs4 import BeautifulSoup
html = """
<html>
<head>
<title>テストページ</title>
</head>
<body>
<h1>見出し</h1>
<p>これはテストページです。</p>
</body>
</html>
"""
soup = BeautifulSoup(html, "html.parser")
print(soup.title.string)
print(soup.h1.string)
print(soup.p.string)
このコードは、HTMLからタイトル、見出し、段落の内容を抽出します。さらに、BeautifulSoupは様々なHTML解析メソッドを提供しています。
タグの検索
BeautifulSoupでは、タグを検索する方法がいくつかあります。find
メソッドは特定のタグを検索し、find_all
メソッドは該当する全てのタグを検索します。例えば:
html = """
<html>
<body>
<p class="content">パラグラフ1</p>
<p class="content">パラグラフ2</p>
</body>
</html>
"""
soup = BeautifulSoup(html, "html.parser")
paragraphs = soup.find_all("p", class_="content")
for paragraph in paragraphs:
print(paragraph.string)
このコードは、クラス属性が「content」の
タグを全て検索し、その内容を出力します。find_all
メソッドは非常に強力で、特定の属性やテキストを持つタグを簡単に検索できます。
属性の操作
さらに、タグの属性にアクセスし操作することも可能です。例えば、次のコードはタグのsrc属性を取得します:
html = """
<html>
<body>
<img src="image.jpg" alt="example image">
</body>
</html>
"""
soup = BeautifulSoup(html, "html.parser")
img_tag = soup.find("img")
print(img_tag["src"])
このようにして、HTMLタグの属性を取得することができます。
まとめ
以上、BeautifulSoupを使ったHTMLパースの基本について説明しました。BeautifulSoupは非常に柔軟で使いやすいため、ウェブスクレイピングやデータ解析に役立つ強力なツールです。さらに学びたい方は、公式ドキュメントを参照すると良いでしょう。公式ドキュメント(外部リンク)には、より多くの情報と詳細な例が掲載されています。