Pythonを使ったスクレイピングを始めたい方向けに、環境構築からライブラリのインストール、そしてテストスクリプトの実行までを詳しく解説します。
この記事では、実際にターミナルでの出力例も交えながら、実践的なスクレイピングに進む前の基礎を固めます。
✅ この記事でできること
- Python環境の確認とpipの使い方
- スクレイピングに必要なライブラリのインストール
- テスト用HTMLから情報を抽出する基本スクリプトの実行
- インストールされるライブラリの詳細解説
1. Pythonが使えるか確認
ターミナルを開いて以下を実行します:
python3 --version
出力例:
Python 3.9.18
バージョンが表示されればPython 3が正しくインストールされています。
2. 必要なライブラリをインストール
スクレイピングには、以下の3つのライブラリが基本セットです。
ライブラリ名 | 用途 |
---|---|
requests | WebページからHTMLを取得する |
beautifulsoup4 | HTMLを解析して情報を抽出する |
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
このように、自動的に多くの依存ライブラリが一緒にインストールされています。
🔍 インストールされたライブラリ一覧と解説
パッケージ名 | 説明 |
---|---|
requests | HTTP通信ライブラリ。Webページの取得に使用。 |
├─ certifi | HTTPS接続用の証明書バンドル。requestsが使用。 |
├─ charset-normalizer | 文字コードを正確に判別してくれるライブラリ。 |
├─ idna | 国際化ドメイン(日本語URLなど)への対応。 |
└─ urllib3 | HTTPリクエストの基盤。接続管理などを担う。 |
beautifulsoup4 | HTMLやXMLを解析する定番ライブラリ。 |
├─ soupsieve | CSSセレクタ風の検索が可能に。 |
└─ 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でスクレイピングが正常に動作することを確認できた
コメント