前提
ブログの記事のコードをコピペして実行しましたが、chromedriverで指定したページまでは開けるのですが、csvファイルに保存するところでattribute errorになります。
実現したいこと
ソースコードをエラーなく動作するようにしたい
python3
1# coding:utf-8 2from selenium import webdriver 3from time import sleep 4import csv 5 6def save_csv(data, file_path): 7 with open(file_path, 'w') as file: 8 writer = csv.writer(file, lineterminator='\n') 9 writer.writerows(data) 10# xpath一覧 11products_xpath = "//div[contains(@class, 'item-box')]//a" 12#product_title_xpath = "//h1[contains(@class, 'item__name')]" 13product_title_xpath = "/html/body/div[3]/div/div/div/div/div/div[2]/section/div[2]/section/div[1]/div/div[2]/p/a/span[@itemprop, 'name']" 14price_xpath = "//p[contains(@class, 'item__value')]/span" 15soldout_xpath = "//div[contains(@class, 'photo-box__soldout_ribbon')]" 16 17# 商品情報を格納するリスト 18products_detail = [] 19 20# Chromeインスタンスの作成 21driver = webdriver.Chrome() 22driver.implicitly_wait(10) 23 24# 検索結果を表示 25search_keyword = '嫌われる勇気' 26driver.get(f"https://fril.jp/s?query={search_keyword}") 27sleep(1) 28 29# 商品一覧取得 30porducts = driver.find_elements_by_xpath(products_xpath) 31links = [product.get_attribute('href') for product in porducts] 32sleep(1) 33 34# 商品個別ページを表示 35for link in links: 36 if len(products_detail) < 10: 37 try: 38 driver.get(link) 39 40 # 商品情報を取得 41 product_name = driver.find_element_by_xpath(product_title_xpath).text 42 product_price = driver.find_element_by_xpath(price_xpath).text.replace("¥", "") 43 product_url = driver.current_url 44 if len(driver.find_elements_by_xpath(soldout_xpath)) > 0: 45 product_status = "売り切れ" 46 else: 47 product_status = '販売中' 48 products_detail.append([search_keyword, product_name, product_price, product_status, product_url]) 49 50 # 待機処理 51 sleep(2) 52 except: 53 pass 54 55save_csv(products_detail, 'rakuma.csv') 56 57# ブラウザを終了 58driver.close() 59
発生している問題・エラーメッセージ
Traceback (most recent call last): File "rakuma.py", line 30, in <module> porducts = driver.find_elements_by_xpath(products_xpath) AttributeError: 'WebDriver' object has no attribute 'find_elements_by_xpath'
python
試したこと
xpathを変えて実行してみました。
find_elements_by_xpath()を調べました。
補足情報(FW/ツールのバージョンなど)
osx zsh
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。