元職業エンジニアの生き方

これまでとこれからを考えるための備忘録

SeleniumとPythonでGoogle検索を実施して検索結果の1番目を取得する

宮本です。 Twitterコチラ

はじめに

SeleniumPythonで操作する勉強をしているのでその備忘録です。

仕様

  1. キーワードでGoogle検索の1番目のURLを取得

環境的なあれこれ


実装

python:google_url.py


#!/usr/bin/
# -*- coding: utf-8 -*-

import os, io, time
import urllib2 as urllib
import selenium.webdriver
from PIL import Image

kw = u'道後温泉'
url = 'https://www.google.co.jp/'

webdriver = selenium.webdriver
chop = webdriver.ChromeOptions()
chop.add_argument('--disable-gpu')
chop.add_argument('--no-sandbox')
driver = webdriver.Chrome(executable_path='your chrome driver path', chrome_options = chop)
driver.implicitly_wait(15)
    
driver.get(url)
print(driver.current_url)
time.sleep(5)

print('KW : ' + kw)
xpath = '//*[@id="lst-ib"]'
search = driver.find_element_by_xpath(xpath)
search.send_keys(kw)
time.sleep(5)

xpath = '//*[@id="sbtc"]/div[2]/div[2]/div[1]/div/ul/li[9]/div/span[1]/span/input'
button = driver.find_element_by_xpath(xpath)
button.click()
time.sleep(5)

xpath = '//*[@id="rso"]/div[1]/div/div[1]/div/div/h3/a'
first_url = driver.find_element_by_xpath(xpath)
print(first_url.get_attribute('href'))

driver.quit()

 

結果

上記の場合道後温泉の検索結果1番目が出力されるはずです。

 

今回はあえてPython上のSleepを実施しましたが、本来は要素表示を待って動作をするほうがよいです。

それとXpathでの取得をしてみましたが、もちろんaタグなどの要素を取得することもできます。