BeautifulSoupとDataFrameを使ってWebスクレイピング入門

BeautifulSoupとは?

BeautifulSoupは、Pythonのライブラリの1つで、HTMLやXMLなどのマークアップ言語から情報を抽出するためのツールです。HTMLのタグや属性を指定して、その要素を抽出できます。

DataFrameとは?

DataFrameは、Pandasというライブラリの1つで、テーブル形式のデータを扱うためのツールです。Excelのように、行と列で構成されるデータを扱うことができます。

BeautifulSoupとDataFrameを使ったWebスクレイピングの基本的な流れ

Webスクレイピングの基本的な流れは以下の通りです。

  1. スクレイピングしたいWebページのURLを取得する。
  2. 取得したURLからHTMLを取得する。
  3. BeautifulSoupを使ってHTMLを解析する。
  4. 必要な情報を抽出して、DataFrameに格納する。

BeautifulSoupを使ったHTMLの解析方法

BeautifulSoupを使ってHTMLを解析するには、以下のような手順が必要です。

  1. HTMLを読み込む。
  2. 解析したい部分を指定する。
  3. 必要な情報を抽出する。

以下は、BeautifulSoupを使ってHTMLを解析するためのサンプルコードです。

import requests
from bs4 import BeautifulSoup
# スクレイピングしたいWebページのURLを取得する
url = 'https://example.com'
# 取得したURLからHTMLを取得する
response = requests.get(url)
html = response.content
# BeautifulSoupを使ってHTMLを解析する
soup = BeautifulSoup(html, 'html.parser')
# 必要な情報を抽出する
title = soup.title.string

DataFrameを使ったデータの整形方法

DataFrameを使ったデータの整形には、以下のような手順が必要です。

  1. データを読み込む。
  2. 必要な列を選択する。
  3. 不要な行を削除する。
  4. 欠損値を処理する。
  5. データ型を変換する。

以下は、DataFrameを使ってデータを整形するためのサンプルコードです。

import pandas as pd
# データを読み込む
df = pd.read_csv('data.csv')
# 必要な列を選択する
df = df[['column1', 'column2', 'column3']]
# 不要な行を削除する
df = df.dropna()
# 欠損値を処理する
df = df.fillna(0)
# データ型を変換する
df['column3'] = df['column3'].astype(int)

BeautifulSoupとDataFrameを活用した具体的なWebスクレイピングの例

以下は、BeautifulSoupとDataFrameを活用した具体的なWebスクレイピングの例です。

スクレイピングしたいWebページのURLは、Python公式サイトのトップページです。

このWebページから、Pythonの最新バージョンとそのリリース日を抽出して、DataFrameに格納します。

import requests
from bs4 import BeautifulSoup
import pandas as pd
# スクレイピングしたいWebページのURLを取得する
url = 'スクレイピングしたいWebページのURL'
# 取得したURLからHTMLを取得する
response = requests.get(url)
html = response.content
# BeautifulSoupを使ってHTMLを解析する
soup = BeautifulSoup(html, 'html.parser')
# 必要な情報を抽出する
version = soup.find('span', {'class': 'release-number'}).text
released = soup.find('span', {'class': 'release-date'}).text
# DataFrameに格納する
data = {'version': [version], 'released': [released]}
df = pd.DataFrame(data)
print(df)

まとめ

今回は、BeautifulSoupとDataFrameを使ってWebスクレイピングする方法について紹介しました。

Webスクレイピングは、必要な情報を自動的に抽出することができるため、データ収集や分析に非常に有効です。

ただし、Webスクレイピングはサイトの利用規約に違反することがあるため、注意が必要です。