質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

解決済

webdriverについて

ravi9534
ravi9534

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

2回答

0リアクション

0クリップ

380閲覧

投稿2022/08/17 06:46

前提

ブログの記事のコードをコピペして実行しましたが、chromedriverで指定したページまでは開けるのですが、csvファイルに保存するところでattribute errorになります。

実現したいこと

ソースコードをエラーなく動作するようにしたい

python3

# coding:utf-8 from selenium import webdriver from time import sleep import csv def save_csv(data, file_path): with open(file_path, 'w') as file: writer = csv.writer(file, lineterminator='\n') writer.writerows(data) # xpath一覧 products_xpath = "//div[contains(@class, 'item-box')]//a" #product_title_xpath = "//h1[contains(@class, 'item__name')]" product_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']" price_xpath = "//p[contains(@class, 'item__value')]/span" soldout_xpath = "//div[contains(@class, 'photo-box__soldout_ribbon')]" # 商品情報を格納するリスト products_detail = [] # Chromeインスタンスの作成 driver = webdriver.Chrome() driver.implicitly_wait(10) # 検索結果を表示 search_keyword = '嫌われる勇気' driver.get(f"https://fril.jp/s?query={search_keyword}") sleep(1) # 商品一覧取得 porducts = driver.find_elements_by_xpath(products_xpath) links = [product.get_attribute('href') for product in porducts] sleep(1) # 商品個別ページを表示 for link in links: if len(products_detail) < 10: try: driver.get(link) # 商品情報を取得 product_name = driver.find_element_by_xpath(product_title_xpath).text product_price = driver.find_element_by_xpath(price_xpath).text.replace("¥", "") product_url = driver.current_url if len(driver.find_elements_by_xpath(soldout_xpath)) > 0: product_status = "売り切れ" else: product_status = '販売中' products_detail.append([search_keyword, product_name, product_price, product_status, product_url]) # 待機処理 sleep(2) except: pass save_csv(products_detail, 'rakuma.csv') # ブラウザを終了 driver.close()

発生している問題・エラーメッセージ

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/08/17 07:05

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。