Excel+SeleniumBasicでChrome操作・スクレイピング

Chrome操作

ExcelのVBA好きではありませんが、VBAとSeleniumBasicを使いChromeの操作ができます。WEBページへの書き込み・画像のアップロードまた、WEB上からデータを取得することもできます(スクレイピング)

Seleniumのダウンロード先: (更新は止まっているようです)

Chromeを自動で動かす別の方法:

SeleniumBasicのインストールと設定すべきこと

フォルダ固定

ダウンロードしたEXEを実行すると、決まったフォルダに入ります。自分で好きな場所指定できないようです。

Chromedriverが必要です。

Excelの「Selenium Type Library」参照設定にチェックを入れる

「ツール」>「参照設定」と選択します。

Selenium Type Library」にチェックを入れます。

テストコードを動かしてみる  エラーで動かない

Public Sub testWEB()
    Dim driver As New Selenium.WebDriver
    driver.Start "Chrome"
    driver.Get "https://www.yahoo.co.jp/"
End Sub

ChromeでYahooを開くだけのコード

こんなエラーが出ました。

chromedriverエラー

 UnknownError

unknown error: cannot find Chrome binary

(Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Windows NT 10.0 x86_64)

「UnknownError」考えられるのChromeがよくUpdateするので「ChromeDriver」が最新のものでない。自動化よくやるのですでにChromeDriver入っていますが古いと思います。

最新のものをダウンします。ダウンロード先:

ダウンするDriverは自分のChromeのバージョンに近いものを選びます。

そして、Seleniumと同じフォルダに入れてください。

これで、ちゃんと動きました。Chromeの新規Windowが立ち上がります。

Selenium Command調べてみる

URL開く  .Get “url”

Private Sub Use_Chrome()
  Dim driver As New ChromeDriver
  driver.Get "https://www.yahoo.co.jp/"
  driver.Quit
End Sub

Chrome新しい窓が開き。Yahooを開きます。ただし、すぐに閉じる。

drive.Wait 8000  '8秒待つ

Quitの前に入れます。

別のサンプルコード: いろんな書き方できるみたいです。

Public Sub try()
    Dim driver As New WebDriver
    driver.Start "Chrome", "http://www.google.com"
    driver.Get "/"
    MsgBox "SAM"
End Sub

Command 一覧ないのでサンプルを読む

Google先生に聞いても、コマンドの説明出てこないので、SeleniumBasic入れたとき一緒に入ってきたサンプルを読むことにしました。

SeleniumBasicのフォルダ見たら、「ヘルプファイル」がありました。

英語で中身も難解です(私には)
コマンド知らないと何もできなさそう。

Googleで検索ワードをつけて開きたい

https://www.google.com/search?q=検索ワード

最初にInputで検索ワードを入れ、それをGoogleで開く

Public Sub try()
    Dim searchWord As Variant
    Dim driver As New ChromeDriver
    
    searchWord = InputBox("")
    URL = "https://www.google.com/search?q=" & searchWord
    driver.Get URL
    '
    MsgBox "SAM"
End Sub

これだと、日本語だけでなく英語も検索されてしまう。

わかりました

 searchWord = searchWord & "&lr=lang_ja"

URL= ~~行の前に上のコード入れてください。
lr=lang_ja の=前後に空白を入れてはいけません。

Googleで検索語をつけ、自分のブログが何位に表示されているのかをチェックしたい

別記事で書きます。

コメント

タイトルとURLをコピーしました