意識低い系会社員

意識低い系会社員の日常

【スポンサーリンク】

プログラム(python)からブラウザを操作してGoogle検索する方法

【スポンサーリンク】

事前準備

1. Pythonのインストール

Python公式からインストーラをダウンロードすることができます。

理由がなければPython3系を使うのが推奨されているので、Python3系の最新をインストールします。

www.python.jp

 

2. Seleniumのインストール

Pythonのインストールが終了して、pathの設定などが完了したら以下のコマンドでインストールできます。

 

pip install selenium

Seleniumはpythonからブラウザを操作するために必要です。

 

3. Google Cromeのインストール

今回はGoogle Chromeを使うので、インストールしていない場合はGoogle Chromeをインストールします。

でもブラウザならなんでもいいです。

 

4. Chrome Driverのダウンロード

SeleniumのHPからChromeのドライバをダウンロードします。

ドライバはプログラムからブラウザを操作するために必要です。

ダウンロードしたドライバーは任意のフォルダに入れておいてください。

どこに置けばいいのか悩む方はC:\driverフォルダでも作ってそこに入れてください。

pythonで使用するドライバの置き場所はこちら。

pypi.org

 

これで事前準備は完了です。

 

プログラム

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep

# driver path
driver_path = "C:\\driver\\chromedriver.exe"

# URL of Google top
url = "https://www.google.co.jp/"

# Activation headless mode
options = Options()
#options.add_argument('--headless')

# open Google top
driver = webdriver.Chrome(chrome_options=options, executable_path=driver_path)
driver.get(url)
sleep(2)

# Search for "python"
#element = driver.find_element_by_name('q')
#element = driver.find_element_by_id("lst-ib")
element = driver.find_element_by_class_name("gsfi") element.send_keys("python") element.submit() sleep(2) # close google chrome driver.quit()

 

上記を実行したら以下の動作をします。

1. Google Chromeが立ち上がり、GoogleのTopが表示される

2. 2秒待つ

3. Googleの検索Windowに"python"と打ち込まれて送信される

4. 検索結果画面が表示される

5. 2秒待つ

6. Google Chromeが終了する

 

解説

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep

このプログラムに必要なライブラリをimportしています。

 

# driver path
driver_path = "C:\\driver\\chromedriver.exe"

# URL of Google top
url = "https://www.google.co.jp/"

ダウンロードしたGoogle Chromeのドライバの場所とGoogleのURLを定義しています。

 

# Activation headless mode
options = Options()
#options.add_argument('--headless')

ブラウザ操作時のオプションを選択できます。

 

#options.add_argument('--headless')

のコメントアウトを外せばheadlessモードでGoogle Chromeが起動します。

HeadlessモードではGUIのブラウザは起動しません。 

 

# open Google top
driver = webdriver.Chrome(chrome_options=options, executable_path=driver_path)
driver.get(url)
sleep(2)

Google Chromeを起動して、get()メソッドで指定されたURLを開きます。

起動した後、2秒間止まります。

 

# Search for "python"
#element = driver.find_element_by_name('q')
#element = driver.find_element_by_id("lst-ib")
element = driver.find_element_by_class_name("gsfi") element.send_keys("python") element.submit() sleep(2)

Googleの検索Windowに"python"という文字列を入力し、submit(検索フォームの送信)します。 

検索結果が表示されたら2秒間止まります。

element = driver.find_element_by_XXXXで入力フォームを指定しています。

いくつか検索するメソッドがあるので、使いやすいものを使いましょう。

HTMLの要素の名前やクラス名、IDなどはブラウザでF12ボタンを押せば見れます。

 

f:id:amistad06-k:20180829103246p:plain

F12ボタンを押して入力フォームの要素を探します。

 

f:id:amistad06-k:20180829103533p:plain

 

拡大。

文字が小さくてわかりにくいんですが、HTMLの要素の詳細が見れます。

 

f:id:amistad06-k:20180829103625p:plain

さらに拡大。

 

class="gsfi"

id="lst-ib"

name=q

と書かれているのがわかります。

こんな感じで探します。

 

最後です。

# close google chrome
driver.quit()

この処理で Google Chromeを閉じます。

 

以上です。

意外と簡単にプログラムからブラウザを操作することができました。

スクレイピングとかの初歩中の初歩なので、スクレイピングしてみたい方などはまずこういうところから始めてみましょう。

 

おわり。

【スポンサーリンク】