Pythonでスクレイピング環境を構築しよう|基本ライブラリとテストスクリプトで実践入門

Pythonを使ったスクレイピングを始めたい方向けに、環境構築からライブラリのインストール、そしてテストスクリプトの実行までを詳しく解説します。
この記事では、実際にターミナルでの出力例も交えながら、実践的なスクレイピングに進む前の基礎を固めます。


✅ この記事でできること

  • Python環境の確認とpipの使い方
  • スクレイピングに必要なライブラリのインストール
  • テスト用HTMLから情報を抽出する基本スクリプトの実行
  • インストールされるライブラリの詳細解説

1. Pythonが使えるか確認

ターミナルを開いて以下を実行します:

python3 --version

出力例:

Python 3.9.18

バージョンが表示されればPython 3が正しくインストールされています。


2. 必要なライブラリをインストール

スクレイピングには、以下の3つのライブラリが基本セットです。

ライブラリ名用途
requestsWebページからHTMLを取得する
beautifulsoup4HTMLを解析して情報を抽出する
pandas表データとして整形・CSV出力などに利用

次のコマンドで一括インストールできます。

pip3 install requests beautifulsoup4 pandas

3. インストールログの読み解き

以下は実際のターミナル出力(抜粋)です:

Defaulting to user installation because normal site-packages is not writeable
Successfully installed beautifulsoup4-4.13.4 numpy-2.0.2 pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.2 soupsieve-2.7 typing-extensions-4.13.2 tzdata-2025.2

このように、自動的に多くの依存ライブラリが一緒にインストールされています。


🔍 インストールされたライブラリ一覧と解説

パッケージ名説明
requestsHTTP通信ライブラリ。Webページの取得に使用。
├─ certifiHTTPS接続用の証明書バンドル。requestsが使用。
├─ charset-normalizer文字コードを正確に判別してくれるライブラリ。
├─ idna国際化ドメイン(日本語URLなど)への対応。
└─ urllib3HTTPリクエストの基盤。接続管理などを担う。
beautifulsoup4HTMLやXMLを解析する定番ライブラリ。
├─ soupsieveCSSセレクタ風の検索が可能に。
└─ typing-extensions型ヒントの拡張。Pythonの互換性を保つ。
pandas表形式データを扱うための強力なライブラリ。
├─ numpy数値処理の基盤。pandasが依存。
├─ python-dateutil日付データの扱いを簡単にする。
├─ pytzタイムゾーン対応。
└─ tzdataタイムゾーンの定義データ。

4. テスト用HTMLとPythonスクリプトの準備

4-1. テスト用HTMLファイル(test.html)

以下の内容を test.html という名前で保存します:

<!DOCTYPE html>
<html>
<head><title>テストページ</title></head>
<body>
  <h1>見出しテスト</h1>
  <ul>
    <li class="store">お店A</li>
    <li class="store">お店B</li>
    <li class="store">お店C</li>
  </ul>
</body>
</html>

4-2. スクレイピングスクリプト(scrape_test.py)

import pandas as pd
from bs4 import BeautifulSoup

# HTMLファイルを読み込む
with open('test.html', 'r', encoding='utf-8') as f:
    html = f.read()

# BeautifulSoupで解析
soup = BeautifulSoup(html, 'html.parser')

# クラス名がstoreのli要素をすべて取得
stores = soup.find_all('li', class_='store')

# テキストを抽出しリスト化
store_list = [{'店名': store.text} for store in stores]

# DataFrameに変換して表示&CSV出力
df = pd.DataFrame(store_list)
print(df)
df.to_csv('stores.csv', index=False)

5. スクリプトの実行

2つのファイル(test.html, scrape_test.py)を同じフォルダに置いて、次のコマンドを実行:

python3 scrape_test.py

出力:

    店名
0  お店A
1  お店B
2  お店C

同時に stores.csv というファイルが生成されます。


✅ まとめ

  • pip install により環境構築と依存ライブラリの自動解決ができた
  • requests, BeautifulSoup, pandas の基本連携を理解した
  • テストHTMLでスクレイピングが正常に動作することを確認できた

コメント

タイトルとURLをコピーしました