webdriverを使用してブラウザを起動し、ターゲットとするURLを開きます。
以下の例ではChromeを起動しています。他のブラウザを使用する場合は、webdriverから対象ブラウザの起動メソッドを探してください。
from selenium import webdriver # Chrome起動 browser = webdriver.Chrome('ドライバのパス') browser.get('ターゲットURL') # ~~~ 解析処理 ~~~ # Chrome終了 browser.quit()
※環境変数を設定してある場合は'ドライバのパス'は不要です。
webdriverのfind_element_by_id()を使用します。
browser = webdriver.Chrome() # ~~~ 省略 ~~~ element = browser.find_element_by_id('ID属性名') print(element.text)
webdriverのfind_element_by_tag_name()を使用します。
browser = webdriver.Chrome() # ~~~ 省略 ~~~ element = browser.find_element_by_tag_name('タグ名') print(element.text)
webdriverのfind_elements_by_tag_name()を使用します。
リスト型で返却されるので、for文等で処理を加えます。
browser = webdriver.Chrome() # ~~~ 省略 ~~~ elements = browser.find_elements_by_tag_name('タグ名') for i in elements: print(i.text)
import io from urllib import request # ~~~ 省略 ~~~ element = browser.find_element_by_tag_name('img') url = element.get_attribute('src') in_data = io.BytesIO(request.urlopen(url).read()) img = Image.open(in_data) img.save(保存ファイル名)
WebElementのsend_keys()を使用します。
browser = webdriver.Chrome() # ~~~ 省略 ~~~ element = browser.find_element_by_id('ID属性名') element.send_keys('文字列入力')
WebElementのclick()を使用します。
browser = webdriver.Chrome() # ~~~ 省略 ~~~ element = browser.find_element_by_id('ID属性名') element.click()