前提
Pythonを使ってスクレイピングを行っています。
ライブラリ:selenium
概要:ふるさと納税サイトの口コミ集計
実現したいこと
最終ゴール:自治体毎に口コミ集計を行う
【想定している流れ】
①自治体ページから各商品のリンクを一覧で抽出
②①で抽出したリンクをbrowser.get(url)して各商品でそれぞれ口コミ集計処理を行う
現状ゴール:商品毎のページに行って、商品のタイトルを取得、一覧でprint抽出
発生している問題・エラーメッセージ
Traceback (most recent call last): File "/Users/xxx/Desktop/紋別市/choice/choice.py", line 27, in <module> link_title = browser.find_element_by_class_name('ttl-h1__text inline') File "/Users/xxx/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 564, in find_element_by_class_name return self.find_element(by=By.CLASS_NAME, value=name) File "/Users/xxx/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element 'value': value})['value'] File "/Users/xxx/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/Users/xxx/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".ttl-h1__text inline"} (Session info: chrome=84.0.4147.135)
該当のソースコード
python
1from selenium import webdriver 2import time 3import csv 4import datetime 5 6# ブラウザを開く 7browser = webdriver.Chrome() 8# URLを開く 9url = "https://www.furusato-tax.jp/city/product/01219/0" 10browser.get(url) 11 12# citygoods_goods = 「紋別市の全てのお礼の品」←ここから抽出していく 13elems_item = browser.find_element_by_class_name('citygoods_goods') 14# citygoods_goods の中の各商品ごと 15elems = elems_item.find_elements_by_class_name('card-product') 16 17# ①各商品ごとのリンクをリストで抽出 18# ②で抽出したリストをfor文で回して一つずつurlを見に行って集計処理をする 19product_link = [] 20title = [] 21for elem in elems: 22 elem_product_link = elem.find_element_by_class_name('card-product__link') 23 product_link.append(elem_product_link.get_attribute('href')) 24 for link in product_link: 25 browser.get(link) 26 time.sleep(1.0) 27 link_title = browser.find_element_by_class_name('ttl-h1__text inline') 28 print(link_title) 29 30browser.close()
エラーとなっている箇所
python
1link_title = browser.find_element_by_class_name('ttl-h1__text inline')
原因が分からず...
ご教示いただけますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/24 06:19
2020/08/24 07:35