Selenium を使う

2020年10月17日

はじめに

Selenium でブラウザの操作を行う。

環境

  • macOS 10.14.6
  • Miniconda3 (Python 3.7)
  • Selenium 3.141.0
  • Chrome 86.0.4240.80

Selenium のセットアップ

conda でインストールする。chromedriver のバージョンは Chrome のバージョンに合わせる。

$ conda install selenium
$ conda install -c conda-forge python-chromedriver-binary=86.0.4240.22.0

動作確認。

>>> from selenium import webdriver
>>> import chromedriver_binary
>>> driver = webdriver.Chrome()
>>> driver.get("http://www.python.org")

ブラウザが起動して Python のページが表示されたら OK。

サンプル

Google で 1 週間以内の猫画像を検索する例。

sample.py

# 1 週間以内で画像検索をする
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import chromedriver_binary
from time import sleep

# ページを開く
driver = webdriver.Chrome()
driver.get("http://www.google.co.jp")

# 画像検索に切り替え
driver.find_element_by_link_text("画像").click()

# 検索
q = driver.find_element_by_name("q")
q.send_keys("猫")
q.send_keys(Keys.ENTER)

sleep(3)

# ツール
driver.find_element_by_xpath("//*[contains(text(), 'ツール')]").click()

sleep(3)

# 時間
driver.find_element_by_xpath("//*[contains(text(), '時間')]").click()

sleep(3)

# 時間を切り替え
driver.find_element_by_link_text("1 週間以内").click()

クリックして、メニューが表示されてからさらにクリックする、という手順になっている場合、そのままやると速すぎてクリックできないことがある。そのため、適度にスリープを入れている。