物理の駅 by onsanai

Physics Station → PhSt 質問・疑問・間違いの指摘は、コメントに書くか、直接伝えるときっと良いことがあります。主にWindows or Ubuntu用の記事です

Chromeを使ってログインが必要なウェブサイトをスクレイピングする

Chromeを遠隔操作するタイプで動かすのが直感的で分かりやすかった。

qiita.com

まずは selenium をインストールする

pip install selenium

chromedriver-binaryをインストールする。https://pypi.org/project/chromedriver-binary/#history へアクセスして、自分のchromeと一致するバイナリを取得する。

当方の現在の環境は Chrome 84.0.4147.105 だったので、一番近い 84.0.4147.30.0 をインストールした

pip install chromedriver-binary==84.0.4147.30.0

使ってみる。

初期化

import chromedriver_binary
from selenium import webdriver

options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

ウェブページへ飛ぶ

driver.get("https://URL/")

ログインする

driver.find_element_by_id("username").send_keys("user")
driver.find_element_by_id("password").send_keys("pass")
driver.find_element_by_id("login").submit()

要素を指定する場合はchromeでF12で開ける画面のElementsで要素を右クリックし、Copy XPathで取得すると良い。

element=driver.find_element_by_xpath(r'XPATH')

#値を設定
element.send_keys("a")

#クリック
element.click()

#クリア
element.clear()

#テキスト
element.text()

タイムアウトの設定は以下の通り。単位は秒。

driver.implicitly_wait(1)