【Python】Webスクレイピングを行う方法

Web上のデータを自動的に収集するために、PythonでWebスクレイピングを行う方法を紹介します。この記事では、初心者にも分かりやすく、必要な手順をステップバイステップで説明します。

必要なライブラリのインストール

まず、Webスクレイピングに必要なライブラリをインストールします。これには、requests、BeautifulSoup、lxml、およびpandasが含まれます。以下のコマンドを実行してインストールしてください。

pip install requests beautifulsoup4 lxml pandas

WebページからHTMLを取得する

次に、ターゲットとするWebページのHTMLを取得します。requestsライブラリを使用して、指定したURLからHTMLコンテンツを取得する方法を紹介します。

import requests

url = "https://example.com"
response = requests.get(url)
html_content = response.content

上記のコードでは、urlに指定したWebページのHTMLコンテンツをhtml_contentとして取得します。

HTMLを解析してデータを抽出する

取得したHTMLを解析して、目的のデータを抽出します。BeautifulSoupライブラリを使って、ページ内のすべての見出し(h1タグ)を取得する例を示します。

from bs4 import BeautifulSoup

soup = BeautifulSoup(html_content, "lxml")

# 例えば、ページ内のすべての見出しを抽出
headings = soup.find_all("h1")
for heading in headings:
    print(heading.text)

このコードは、ページ内のすべてのh1タグを検索し、それらのテキストを出力します。

抽出したデータを整理・保存する

最後に、抽出したデータを整理し、CSVファイルとして保存します。pandasライブラリを使用して、データをDataFrameに変換し、CSVファイルに書き出す方法を示します。

import pandas as pd

data = []
for heading in headings:
    data.append(heading.text)

# データをDataFrameに変換してCSVに保存
df = pd.DataFrame(data, columns=["Heading"])
df.to_csv("headings.csv", index=False)

この手順により、取得した見出しをCSVファイルとして保存することができます。

まとめ

Pythonを使ったWebスクレイピングの基本的な流れを紹介しました。requestsでHTMLを取得し、BeautifulSoupで解析し、pandasで整理・保存するという一連のプロセスを理解することで、さまざまなWebデータを効率的に収集できるようになります。さらに高度なスクレイピングが必要な場合は、Seleniumなどのツールも検討してみてください。