本リポジトリは Python でスクレイピングを試すためのテンプレートリポジトリです Dev Container の設定をしていますので、VS Code と Docker、Git さえあれば各種開発用設定が行われた Python の開発環境が構築され、即時開発が可能です GitHub のリポジトリページの「Use this template」を押下して使用してください
- Python : 3.12
- Docker インストール
- VS Code インストール
- VS Code の拡張機能「Remote - Containers」インストール
- 本リポジトリの clone
- ssh-agent の設定
- 以下をプロジェクト名に合わせて変更
.devcontainer/devcontainer.jsonname,service
compose.yamlservicesの Key 名image,container_name
- main.py
example.ipynb- logging.conf
python_scraping_templateを使用するモジュール名に合わせる
README.mdLICENSE- doc
- サンプルページである
docディレクトリの削除
- サンプルページである
- dependabot
.github/dependabot.yml.github/workflows/auto_merge_depandabot.yml
- pyproject.toml
project.name,project.description,project.authors,tool.hatch.build.targets.wheel
- VS Code 起動
- 左下のアイコンクリック
- 「Dev Containers: Reopen in Container」クリック
- しばらく待つ
- 初回の場合コンテナー image の取得や作成が行われる
- 起動したら開発可能
- 初回起動時は
rye syncを実行してください
- 初回起動時は
python_scraping_template/config.pyの内容を更新
python main.py
※ ./example.ipynb もサンプルコードとして動作します
- サンプルコードを実行すると以下のサンプルページの情報を取得して CSV を出力します
- 実行:
python main.py - サンプルページ:
https://yamap55.github.io/python_scraping_template/users/1.html - 出力先:
output/{yyyyMMddhhmmss}/output.csv
- 実行:
- 一覧は静的サイトを想定して requests、詳細ページは動的ページを想定して Selenium で取得しています
- Chrome 自体の動作確認
google-chrome --no-sandbox --headless --disable-gpu --screenshot="screenshot_$(date +"%Y%m%d").png" --window-size=1280,1080 https://www.ugtop.com/spill.shtml
- Chrome のバージョン確認
google-chrome --version
- Chrome の stable チャンネルのバージョン確認
- Webdriver のバージョン確認
- Rye でライブラリの削除
rye remove {パッケージ名}
- WebDriver for Chrome について
- 正統派に WebDriver をインストールにするには
chromedriver-binaryを使用するのが良い - Chrome と WebDriver はバージョンを合わせる必要があり、Chrome の特定のバージョンを使用するのはとても手間がかかる
- そのため、本環境では Chrome を最新バージョンでインストールし、WebDriver は Chrome に合わせてインストールする方法を選択した
- WebDriver のバージョンを合わせるためには、
chromedriver-binaryの作者がchromedriver-binary-autoというパッケージを作成しているためこちらを利用する chromedriver-binary-autoは インストール時に Chrome のバージョンを確認し、それに合わせた WebDriver をインストールしてくれる- よって、本環境ではコンテナをビルドした際に Chrome の最新バージョンがインストールされ、DevContainer 起動時に
poetry installが実行され、chromedriver-binary-autoがインストールされ、その結果、Chrome のバージョンに合わせた WebDriver がインストールされるという流れになっている
- 正統派に WebDriver をインストールにするには