Python の DrissionPage で Web ページを取得する
Python の DrissionPage を利用すると Web ブラウザの操作を自動化することが出来ます。 現時点でサポートしている環境については下記の記載があります。
- Support system: Windows、Linux、Mac
- Python version:more than 3.6
- Support browser: Chromium kernel(eg. Chrome, Edge),electron
このメモでは DrissionPage の ChromiumPage を使って Web ページを取得する、簡単なサンプルをメモしておきます。 尚、DrissionPage のドキュメントページ は中国語だけのようで、英語など他の言語の提供は無いようです…
検証環境¶
対象 | バージョン |
---|---|
macOS | 15.3 |
python | 3.12.7 |
DrissionPage | 4.1.0.17 |
インストール¶
インストールします。
uv pip install drissionpage
サンプルコード¶
DrissionPage はデフォルトで「Web ブラウザを表示」しながら動作します。 これを「Web ブラウザを表示しない」、いわゆるヘッドレスモードで動作させるには ChromiumOptions の set_argument() を使ってヘッドレスモードを指定します。
page.wait(10, 15)
部分は「画面遷移の待ち時間」や「CloudFlare の "人間のアクセスか?を判定するロジック」などを回避する為の待機処理です。 この場合、「10 〜 15 秒間、待機する」という意味になります。
DrissionPage が ChromeDriver を利用する際、デフォルトではローカルコンピュータの TCP/9222 を利用するようです。 もし仮にエラーでプログラムが中断されてしまった場合、TCP/9222 を利用するプロセス (実体は DrissionPage の ChromeDriver から起動された Web ブラウザ) が残ってしまう場合があります。 その為、以下の例では finall 節を使って必ず ChromiumPage の quit() を呼び出して終了処理を行い、TCP/9222 を Listen しているプロセスが残らないようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|