BeautifulSoupの基本操作
BeautifulSoupを使ってWebページの情報を取得するためには、まず基本的な操作方法を理解する必要があります。
この章では、BeautifulSoupオブジェクトの作成、タグの検索、属性の取得、テキストの取得といった基本操作を解説します。
BeautifulSoupオブジェクトの作成
BeautifulSoupオブジェクトは、HTMLやXMLの文字列を解析し、検索や抽出が容易になるように構造化されたオブジェクトです。
BeautifulSoupオブジェクトを作成するには、以下のようにBeautifulSoup
クラスにHTMLやXMLの文字列を渡します。
from bs4 import BeautifulSoup
html = """
<html>
<head>
<title>サンプルページ</title>
</head>
<body>
<h1>見出し1</h1>
<p>これは段落です。</p>
<ul>
<li>リスト1</li>
<li>リスト2</li>
</ul>
</body>
</html>
"""
soup = BeautifulSoup(html, "html.parser")
タグの検索
BeautifulSoupオブジェクトを使って、HTMLやXMLのタグを検索する方法を紹介します。
findメソッド
find
メソッドは、指定したタグ名の最初に見つかった要素を返します。
例えば、以下のように<title>
タグを検索することができます。
title_tag = soup.find("title")
print(title_tag) # <title>サンプルページ</title>
find_allメソッド
find_all
メソッドは、指定したタグ名のすべての要素をリスト形式で返します。
例えば、以下のように<li>
タグを検索することができます。
li_tags = soup.find_all("li")
print(li_tags) # [<li>リスト1</li>, <li>リスト2</li>]
属性の取得
タグの属性を取得する方法を紹介します。
getメソッド
get
メソッドを使って、タグの属性を取得することができます。
例えば、以下のように<a>
タグのhref
属性を取得することができます。
a_tag = soup.find("a")
href = a_tag.get("href")
print(href) # https://example.com
属性名を指定して取得
タグの属性は、属性名を指定して直接取得することもできます。
例えば、以下のように<a>
タグのhref
属性を取得することができます。
a_tag = soup.find("a")
href = a_tag["href"]
print(href) # https://example.com
テキストの取得
タグの中のテキストを取得する方法を紹介します。
text属性
text
属性を使って、タグの中のテキストを取得することができます。
例えば、以下のように<title>
タグのテキストを取得することができます。
title_tag = soup.find("title")
title_text = title_tag.text
print(title_text) # サンプルページ
get_textメソッド
get_text
メソッドを使っても、タグの中のテキストを取得することができます。
例えば、以下のように<title>
タグのテキストを取得することができます。
title_tag = soup.find("title")
title_text = title_tag.get_text()
print(title_text) # サンプルページ
これらの基本操作を組み合わせることで、Webページから必要な情報を効率的に抽出することができます。
次の章では、実際にWebスクレイピングを行う方法を解説します。