Python バージョンの確認
このシリーズは Python 3.9 以上を前提とする。 dataclass のフィールドデフォルト・型ヒントの記法が 3.9+ で自然に書けるためだ。 Python 3.12 を推奨するが、3.9〜3.11 でも動作する。
python --version
# または
python3 --version
Python 3.12.3
⚠️ Python 3.8 以下は非対応
Python 3.8 は 2024 年 10 月に EOL となっている。また dataclasses.field(default_factory=list) の挙動が 3.9 以降で安定しているため、必ず 3.9 以上を使用すること。
仮想環境の作成と有効化
グローバルの Python 環境を汚染しないよう、プロジェクトごとに仮想環境を作る。
Python 標準の venv モジュールで十分だが、好みで uv を使っても良い。
# プロジェクトフォルダを作成
mkdir input-extractor
cd input-extractor
# 仮想環境を作成(フォルダ名は .venv が慣例)
python -m venv .venv
# 有効化(Windows)
.venv\Scripts\activate
# 有効化(macOS / Linux)
source .venv/bin/activate
# 有効化後はプロンプトが変わる
# (.venv) C:\input-extractor>
# uv のインストール(未導入の場合)
pip install uv
# プロジェクト初期化 + 仮想環境作成
uv venv
# 有効化(Windows)
.venv\Scripts\activate
✅ 仮想環境を無効化するには
deactivate コマンドを実行する。プロンプトから (.venv) が消えれば無効化できている。
requirements.txt の全体像
シリーズ全体で使うパッケージを先にまとめておく。 PART 03・04 でそれぞれ詳細なインストール手順を説明するが、 まず全体像を把握しておくと迷わない。
# 静的ページ解析
requests==2.32.3
beautifulsoup4==4.12.3
lxml==5.2.2
# 動的ページ解析(JS レンダリング)
playwright==1.44.0
# データ出力補助(任意)
dataclasses-json==0.6.7
| パッケージ | 用途 | 必須 / 任意 |
|---|---|---|
requests | HTTP クライアント — 静的ページの HTML を取得 | 必須(静的) |
beautifulsoup4 | HTML パーサー — タグを検索・属性を取得 | 必須(静的) |
lxml | 高速 HTML パーサー(BeautifulSoup のバックエンド) | 推奨 |
playwright | ヘッドレスブラウザ — JS 生成の DOM を操作 | 必須(動的) |
dataclasses-json | dataclass を JSON に直接シリアライズ | 任意 |
# 仮想環境が有効な状態で実行する
pip install -r requirements.txt
推奨ディレクトリ構成
input-extractor/
├── .venv/ # 仮想環境(Git 管理外)
├── requirements.txt # パッケージ一覧
├── extractor/
│ ├── __init__.py
│ ├── models.py # PART 05 — dataclass 定義
│ ├── static.py # PART 06 — 静的ページ抽出
│ └── dynamic.py # PART 07 — 動的ページ抽出
├── examples/
│ └── run_extract.py # 動作確認スクリプト
└── output/ # JSON / CSV の出力先
✅ 次の章では…
PART 03 では静的ページ解析に使う requests + BeautifulSoup のインストールと動作確認を詳しく解説します。