概要
seleniumを使い、ウェブブラウザを操作できるところまでまとめます。
seleniumのインストール
pip install selenium
selenium webdriverのダウンロード
上記からダウンロードを行いました。操作するchromeブラウザのバージョンをURL欄にchrome://versionを入力して調べてからそれに対応するものをという記事をネットで読みましたが、あまり気にせず似たようなバージョンのものをダウンロードしてきました。
動作例
サンプル1
はじめのサンプルとしてgoogle.comのページを開くものを作りました。
コード
コードは下記のものを使いました。このコードはgoogle.comをchromeブラウザで開くという動作を想定しています。開いてすぐ閉じてしまうことを防ぐために3秒まつ処理を最後にいれています。
import time
from selenium import webdriver
cService = webdriver.ChromeService(executable_path='.\\src\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe')
driver = webdriver.Chrome(service = cService)
driver.get('http://www.google.com/')
time.sleep(3) # 3秒まつ
前提として、今回実行するプログラムはWindows上で動作させることを考えています。なので、パスの書き方に少し違和感があります。srcフォルダのなかにchromedriverをいれている想定です。
実行
python.exe .\src\main.py
上記コマンドを実行してブラウザが表示されることを確認しました。
サンプル2
サンプル1のものに下記の機能をつけました。
- 表示したページのhtmlを取得する
- 検索窓に文字を入力する
- linkをクリックする
コード
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
cService = webdriver.ChromeService(executable_path='.\\src\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe')
driver = webdriver.Chrome(service = cService)
driver.get('http://www.google.com/')
time.sleep(3) # 3秒まつ
# 表示したページのhtmlを取得し、それを画面に表示する。
page_html = driver.page_source
print(page_html)
# textarea(検索窓)に文字を入力する。
texts = driver.find_element(By.ID, "APjFqb")
texts.send_keys("input text")
time.sleep(3) # 3秒まつ
# linkをクリック
element = driver.find_element(By.LINK_TEXT, "画像")
element.click()
time.sleep(3) # 3秒まつ
実行
python.exe .\src\main.py