Python+Selenium+Chromeのウェブスクレイピングで,スペースが入った要素を取得する

Python+Selenium+Chromeのウェブスクレイピングでは,by_class_nameでスペースが入った要素を取得することができませんので,取得できる手法を紹介します.

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

# by_css_selectorを使用

メソッドをby_class_nameではなくby_css_selectorにして,取得します.

また,by_css_selectorでは,要素の頭と間にあるスペースに「.」を入れる必要があります.

修正前

elem_sample = driver.find_elements_by_class_name("a-link-sample a-text-normal")

修正後

elem_sample = driver.find_elements_by_css_selector(".a-link-sample.a-text-normal")

ただし,僕の場合,上記の手法で複数要素を取得しようとすると,100個の要素の内10個しか取得されないような,漏れが発生しました.

そこで,僕は次の手法を主に使っています.

# by_xpathを使用

by_css_selectorで複数要素を取得しようとすると,漏れが発生しましたので,by_xpathを利用した手法も紹介します.

修正前

elem_sample = driver.find_elements_by_class_name("a-link-sample a-text-normal")

修正後

elem_sample = driver.find_elements_by_xpath('//div[@class="a-link-sample a-text-normal"]')

# まとめ

by_class_nameでスペースが入った要素を取得するために,by_css_selectorとby_xpathを利用した2つの手法を紹介しました.

これでPython+Selenium+Chromeのウェブスクレイピングもまた,使いやすくなると思います.


# 参考サイト

seleniumでby_class_nameでスペースが入った要素が取得できずエラーになる時の対処法 (opens new window)
<Python, selenium> 空白のあるクラス名を選択するには、、 (opens new window)

全国630店舗以上!もみほぐし・足つぼ・ハンドリフレ・クイックヘッドのリラクゼーション店【りらくる】

Python+Selenium+Chromeのウェブスクレイピングで,ボタンクリックを実装する

Python+Selenium+Chromeのウェブスクレイピングで,ボタンクリックを実装する

Python+Selenium+Chromeのウェブスクレイピングで,ボタンクリックの操作を容易にするために,コードを実装します.

Vuepressで吹き出しを実装する

Vuepressで吹き出しを実装する

Vuepressで吹き出しを実装します.主にcssの設定をVuepressでどうのように実装するかの流れになります.