Pythonでスクレイピング(2)seleniumの使い方

lecture

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’となります。

タイトルとURLをコピーしました