Jupyter×Selenium(基本操作#2)

<タイトル> Jupyter×Selenium(基本操作#2)

2025年06月16日 2025年06月24日 カテゴリ: python

Selenium基本操作#2(#Jupyter)

Selenium を使ってスクリプトを作成する際、使用頻度の高い Selenium API を整理したメモです。

この記事で示しているコードについては、#1記事の内容の続きのメモです。

#画面サイズを最大にする#

W = driver.execute_script('return document.body.scrollWidth')
H = driver.execute_script('return document.body.scrollHeight')
driver.set_window_size(W, H)

#「次のページ」へ移動する#

from selenium.webdriver.common.by import By

next_page = driver.find_element(By.LINK_TEXT, "次へ")
next_page.click()

#画面を下へスクロールする#

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

scroll_count = X # スクロール回数
for i in range(scroll_count):
    driver.find_element(by=By.TAG_NAME, value="body").send_keys(Keys.END)

#画面上の「リスト」や「プルダウン」を選択する#

from selenium.webdriver.support.ui import Select

years = driver.find_element_by_name("year")
years_select = Select(years)
years_select.select_by_value("2024")

#要素を選択し、文字を挿入する#

from selenium.webdriver.common.by import By

element = driver.find_element(By.ID, 'XXXX')
element.send_keys("YYYY").click()
  • XXXX:要素、YYYY:入力する文字

#{Xpath} を利用した要素取得#

from selenium.webdriver.common.by import By

elements = driver.find_elements(By.XPATH, '//div[@id="scroll"]/a[@href]')
for el in elements:
    print(el.get_attribute('href'))

#{BS4} 正規表現と組み合わせた要素取得#

import re

Element = soup.find_all('a', href=re.compile(r'https://xxxxx.com/redirect.php?'))
for idx, element in enumerate(Element):
	print(idx+1, element)
	elem = element.find('XXXX').find('YYYY')['href']

総括メモ

これらの API 操作を組み合わせてコーディングすることによって、動的サイト(JS)を含めたスクレイピング処理が可能になる。ただし、Selenium は「サイトの構造」、「取得対象データのボリューム」、「動的要素の有無」などを十分に検討してから採用することが望ましい。また Selenium はブラウザを操作するため、ローカル環境のリソースを多く消費する。そのため、スクレイピング処理が膨大な場合や、複雑な階層構造のページを扱う場合、実行時間や運用面で課題が生じ易くなってしまった。



コメント(一覧)

コメント(入力画面)

空港MAP(#WIKI)
※現在の時刻 週間天気予報 (東京)
バックナンバー(年別)