【Python】BeautifulSoupを使ったWebスクレイピングのやり方を解説

目次から探す

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スクレイピングを行う方法を解説します。

1 2 3 4

目次から探す