seleniumとブラウザ用driverを導入します。ブラウザはChromeを使用する事とします。
from selenium import webdriver browser = webdriver.Chrome() browser.get('https://itstudio.co/sample/flex-gallery/index.html')
seleniumを使った要素の指定方法
次の例はクラス名を指定して要素を指定して情報を取得しています。
elem= browser.find_element_by_class_name('site-title') elem.text
変数browserに入っている情報を活用して要素を指定していきます。
seleniumが用意する要素を指定してその情報を取得する関数は以下のものがあります。
- find_element_by_class_name()
- class属性から要素を取得する
- find_element_by_id()
- id属性から要素を取得する
- find_element_by_tag_name()
- タグ名から要素を取得する
- find_element_by_name()
- name属性から要素を取得する
- find_element_by_xpath()
- xpathから要素を取得する
- find_elements_by_css_selector()
- cssセレクタから要素を取得する
- find_element_by_link_text()
- linkTextから要素を取得する
- find_element_by_partial_link_text()
- linkTextの一部文字列から要素を取得する
複数の要素を取得
タグ名やクラス名で要素を指定すると複数の要素を取ることができます。
その時は、「find_element」部分を「find_elements」として配列で取得したい要素のインデックスを指定します。
elem2 = browser.find_elements_by_class_name('post-content') elem2[1].text
結果は次のようになります。
‘Santorini\nLorem ipsum dolor sit amet, consectetur adipisicing elit. Nam, ad ipsa. Perspiciatis, doloremque consectetur recusandae quidem provident voluptatibus nobis! Molestiae praesentium suscipit esse assumenda laboriosam et enim quis facilis nam,’
さらに絞り込むには要素名を指定します。
elem3 = elem2[1].find_element_by_tag_name('h2') elem3.text
結果は’Santorini’となります。