AutoItでChromeを操作してスクレイピングなどをする場合は、WebDriver経由で行うのが一番やりやすいです。有名なのはSeleniumでブラウザを操作するのですが、AutoItでも同様の事が可能です。
1. 動作確認用のexeを用意しました
Chromeを操作できる動作確認用のexeを無料で公開しているのでそこからダウンロードして設定し、使ってみましょう。
2. WebDriverライブラリと必要なライブラリ
下記ページがWebDriverの紹介ページです(英語サイト)。
2.1 必要なライブラリ
- WebDriver UDFライブラリ
- JSON UDFライブラリ
- WinHTTP ライブラリ
2.1.1 WebDriver ライブラリをダウンロードする
2.1.2 JSON UDFをダウンロードする
下記ページの_Json.zipをダウンロードし解凍、include/に入れておきましょう。
2.1.3 WinHTTP UDFをダウンロードする
下記ページから最新版のWinHttp zipをダウンロードし解凍、include/に入れておきましょう。
3. WebDriverをダウンロードする
WebDriver UDF紹介ページにもありますが、各ブラウザ開発会社がオフィシャルに作成しています。
今回はChrome WebDriverを使い、Chromeを操作してみます。
Chromeのバージョンに合わせて必要なドライバをダウンロードすればよいです。Chromeのバージョン確認は以下をchromeのアドレスバーに入力すれば設定ページで確認することが出来ます。
今回はC:\wd フォルダを作成し、そこに置きます。(これはどこでも大丈夫です)
chrome://settings/help

4. スクリプトを書いて起動確認
下記コードをwetest.au3として保存し、実行(F5)してみましょう。
#include <wd_core.au3> ; まずクロームの設定を記述 _WD_Option('Driver', 'C:\wd\chromedriver.exe') ;webdriverを指定 _WD_Option('DriverParams', ' --verbose --log-path=' & @ScriptDir & '\wdlog.log') _WD_Option('Port', 9515) $sdesire = '{"capabilities": {"alwaysMatch":{"goog:chromeOptions":{"w3c": true, "args":["--disable-gpu-early-init,"]}}}}' ;start 黒い画面(Chrome WebDriver)が立ち上がる Local $pid = _WD_Startup() If @error Then Msgbox(4096,"error", "webdriverの起動に失敗しました") Exit EndIf ;セッションを追加 ChromeDriver経由でChrome新ウィンドウが立ち上がる $sess = _WD_CreateSession($sdesire) If @error Then MsgBox(4096, "error", "ブラウザ立ち上がりませんでした") Exit EndIf ;このサイトを表示する Sleep(1000) _WD_Navigate($sess, "https://cfautog.tokyo") If @error Then MsgBox(4096, "error", "指定したUrlを開けませんでした。 extended=" & @extended ) EndIf Sleep(3000) ;chromeを閉じる _WD_Window($sess, "close") _WD_DeleteSession($sess) ;webdriverを終了 _WD_Shutdown()
コードを実行してみると、WebDriver(黒い画面)が出て、WebDriver経由で新たにセッションを開始し_WD_Navigate()で指定したurlを表示します。

サンプルコードはこちらからダウンロードできます
5. エラーメッセージボックスが出たらChromeDriverなどの指定を変更する
Chromeは常に新しいバージョンに更新されてしまい、ChromeDriverもそれに応じて新たにダウンロードし、指定し直さなくてはいけません。ここが多少面倒なところです。
ちなみにw3c Webdriverに準拠しているので、有名どころのSeleniumと記述方法は多少異なりますが基本一緒です。
6. Seleniumを使うことも出来る
こちらにSelenium Basic を使ってChromeを操作する方法を記事にしました。
シンプルに書けますが、別途Selenium Basicが必要なのが個人的にはちょっと・・です。
7. 参考リンク
7.1 WebDriver UDF
7.2 Json UDF (WebDriver UDFに必要)
7.3 WinHTTP UDF (WebDriver UDFに必要)
これは非常に有益なUDFなので必須です!
コメント
[…] ル(右:設定ファイル)、マニュアルPDF(左)です。マニュアルPDFを見るか、記事「AutoItでChromeを操作する」を参照してChromeWebDriverをPCにダウンロードし、iniファイルにその場所を設定して […]
はじめまして。最近AutoItを知りました。
AutoitでGoogle Chromeを起動すると、通常は拡張機能がない状態で起動してしまうと思うのですが、拡張機能ありの状態で起動することは可能でしょうか。
お忙しいところお手数おかけして申し訳ございませんが
よろしくお願い致します。