【VBA×Selenium】起動済みのChromeWebブラウザを操作する方法
みなさんこんにちは。
Webスクレイピングをする際、
毎回ブラウザを新規に起動して、そのブラウザに対してログイン認証を必要とするため、
何度も起動すると認証をスキップしたい気持ちになるかと思います。
今回は、ログイン認証後の画面を起動し、
その起動済のChromeブラウザに対して操作する方法についてご紹介したいと思います。
この記事はこんな人におすすめ
この記事はこんな人におすすめです!
- VBAプログラミング:初級者~中級者
- Webスクレイピング初学者
- コードだけサクッと取得したい人
- 2要素認証など複雑な認証方式のサイトに対してスクレイピングを実施したい人
といったところでしょうか。
Seleniumを操作する際は、認証情報を1から入力する必要があるので、
複雑な認証方式を採用しているサイトに対してはより効果的かと思います。
起動済のブラウザを操作するメリット
起動済のブラウザを指定するメリットは以下のとおりです。
- 複雑な認証をスキップできる。
- 認証にかかる時間を短縮できる。
- 2要素認証などスクレイピングでは対応できない範囲でも交わすことができる
といったところでしょうか。
スクレイピングをする際は、1から認証情報を入力する必要があるため、
複雑な認証方式を採用しているサイトについては友好的な手段かもしれません。
手順
操作する専用のChromeショートカットを用意する
1.Chrome.exeの本体を探します。
2.Windowsメニュー⇒「GoogleChrome」を右クリック⇒その他⇒ファイルの場所を開く を選択します。
2.デスクトップにショートカットを作成します。
3.作成したショートカットのプロパティを開きます。
4.プロパティのリンク先の末尾に以下を追加します
” -remote-debugging-port=9222″
VBEを開く
VBEを起動してコードを実装します。
内容は以下の通りです。
Sub SeleniumSample()
Dim driver As New Selenium.WebDriver
With driver
.SetCapability "debuggerAddress", "127.0.0.1:9222"
.Start "Chrome" 'クロームブラウザを立ち上げます。
.Get "https://coconala.com/"
End With
End Sub
動作確認
1.作成したショートカットを起動します。
2.VBAを実行します。
3.ココナラの画面がひょうじされる
コーデはココナラのホーム画面を指定しているので、
ココナラのホーム画面が表示されれば完成です。
注意点
注意点は以下の通りです。
- プロパティのリンク先に以下を追加する際に必ず半角スペースを入力すること
- ” -remote-debugging-port=9222″これは意外と見落としがちですのでご注意を!!
- 他のブラウザを開かないこと
- 他のブラウザを開いているとそちらを参照してしまうことがあるので、こちらも注意が必要です。
最後に
いかがでしたでしょうか。
スクレイピングの特徴として、起動時にキャッシュやCookieの情報はクリアされた状態でブラウザが起動されます。
そのため、毎回、ログイン情報を入力する必要がありますが、
シチュエーションや短縮時間にこだわる現場ですとその時間でさえも短縮したくなるかと思います。
今回の記事ではそれをスキップする方法の一つとしてご紹介させていただきました。
少しでもご参考になれば幸いです。
開発依頼について
ココナラでWebスクレイピング開発サービスを出品しております。
自分で開発をしようと思ったけど、依頼したり、何か聞きたいことがあったりしたら
いつでもお気軽にご相談ください。
また、内容についてご不明点があればメッセージをいただけると幸いです。
Excelにてブラウザ操作自動化ツールを作成します その作業、webスクレイピングを使って自動化しましょう!