go言語 Seleniumを使ってchromeで任意のワードで検索をする

go言語 Seleniumを使ってchromeで任意のワードで検索をする

go言語でseleniumを使用して、プログラムからchromeを立ち上げて、指定したワードで検索するための簡単なサンプルコードです。 ここではgoのライブラリであるAgoutiを利用してます。

環境

  • OS  windows10 pro
  • go 1.13.8

chromedriverダウンロード

まずは、chromeを利用するのに必要なドライバー「 chromedriver 」を、こちらよりダウンロードします。

※自分の場合はchromeのバージョンが79だったので79をダウンロードしてます。

chromedriver_win32.zipをクリックしてダウンロードします。

ダウンロードが終わったら、解凍してPATHを通すためのファルダを用意します。

※今回はC:\chromedriverにchromedriver.exeを移動させてPATHを通します

PATHも通しておきます。

Agoutiダウンロード

任意の作業用のフォルダに下記のコマンドでダウンロードします。

go get github.com/sclevine/agouti

Selenium使い方

下記のコードはchrome上で「mebee」というワードを検索するだけのプログラムとなります。

Agoutiをダウンロードしたフォルダに、下記のコードをtest.goという名前で保存します。

package main

import (
	"fmt"
	"os"

	"github.com/sclevine/agouti"
)

func main() {
	// chrome起動
	driver := agouti.ChromeDriver(agouti.Browser("chrome"))
	defer driver.Stop()

	if err := driver.Start(); err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err)
		return
	}

	page, err := driver.NewPage()
	if err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err)
		return
	}

	// googleにアクセス
	if err := page.Navigate("https://www.google.com/"); err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err)
		return
	}

	// qというnameを持つ要素を取得する
	q := page.FindByName("q")
	// 検索文字列を入力
	q.Fill("mebee")

	// 検索を実行
	if err := q.Submit(); err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err)
		return
	}
}

実行します。

go run test.go

実行するとchromeが立ち上がり、「mebee」の検索結果が表示されます