Windows PyCharmでChrome headless開発

 Pythonユーザおなじみの快適開発環境PyCharm。
 エディタと色々でガンバルよりも、このIDEを使うだけで開発の楽さが3割くらい改善する素敵ツール。 デバッガはモチロン、VCSも繋がるし、SFTPとかでコードデプロイも出来るし、保存タイミングでの自動デプロイも結構便利。

 PyCharmを使い始める前はお名前.com VPSさくらのVPS 上でエディタでガリガリやって、そのままVPSに入れたChromeで動かしていたけど、IDEをローカルに入れたらローカルで走らせたいので、今回はスクレイピングツール開発のためのChromeヘッドレス環境をPyCharmプロジェクト内で作る。 別にPyCharm関係なくWindowsでの開発の話だけど。

 PyCharmの標準Pythonアプリでプロジェクトを作ったら、SeleniumをPIPで入れて、ChromedriverとChrome binaryを用意する。
 Chromeは普通に使ってるから、既存のChromeを開発に使いたくないので、Potrableを導入して作る。

Chrome Driverはここから入手
 記事時点で Chromedriver 74.0.3729.6 を選択。
 展開して出てきたChromedriver.exeをPyCharmプロジェクトディレクトリに放り込む(スタイル的にはサブディレクトリに入れた方が綺麗)

続いてChrome Binaryをここから入手
 PortableAppsのビルドで、Chromeインストール済みでも未インストールでも動かせるんでアプリと一緒に持ち運びやすい。 記事時点で GoogleChromePortableDev_74.0.3724.8_online.paf.exe を選択。
 インストーラなので実行してディレクトリに展開、そのファイル一式をChromedriver同様にプロジェクトディレクトリに放り込む。

 1920×1080の描画領域のChromeを立ち上げて、target.tldを取得して、BODYのロードが終わるまで待機し、ページソースをlxml.htmlでパースしてDOMにするまで。 urllibとかで拾ってくるとJSとか遅延ロードが面倒だけど、Chromeで実行すれば普通に開いた状態になるので、それだけでもWebページアクセスには便利。
 lxmlのdomに落とせばxpathとかでデータを拾うことも出来るし、あるいはSelenium側で辿ることも出来るけど、やり方は色々あるので今回は書かないでおく。
 とりあえず、Windows環境でポータブルなChrome headlessの開発環境を用意するメモ。

(374)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP]   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です