【问题标题】:How to scrape amazon rating values in pyhton selenium如何在 python selenium 中抓取亚马逊评级值
【发布时间】:2022-11-13 19:12:37
【问题描述】:

我试图从amazon site 获取评分值

我应用了所有方法,但无法获得评分值。要考虑的另一件事是,此评级没有任何超链接。

for item in WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "[data-hook='review']"))):
    try:
        rating = item.find_element_by_css_selector("a[class*='a-link-normal']").get_attribute("title")
    except:
        rating= item.find_elements_by_xpath('/div[2]/i/span')
        for value in rating:
            rating= value.text

【问题讨论】:

    标签: python selenium-webdriver web-scraping webdriver amazon


    【解决方案1】:

    除了.text,您还可以使用.get_attribute() 从HTMl 元素中获取文本内容。以下代码对我有用:

    from selenium.webdriver.common.by import By
        lst_of_ratings = driver.find_elements(By.CLASS_NAME, "review-rating")
        for value in lst_of_ratings:
            rating = value.get_attribute('textContent')
            print(rating)
    

    【讨论】:

    • 嗨..感谢您的时间和分享解决方案,我们可以获得其中包含类名review-rating 但我的声明没有任何review-rating 类名的数据。请检查屏幕截图
    • @Chacko 检查<span> 的父级<i> 的类。因为没有额外的文本/标签,它会抓取正确的信息。
    • @HedgeHog 我尝试了每个参数,但它给了我空白的结果
    • @Chacko 还检查了响应/汤?亚马逊不喜欢被刮,所以他们阻止你的请求并不少见,但这里的答案是正确的
    • @HedgeHog 我也试过汤,但一无所获。只有这部分没有被刮掉,其余的信息正在得到。
    【解决方案2】:

    Webelement.Attribute("textContent") 是适合我的解决方案。

    虽然我不是通过 python 来做的,但方法仍然相似。 我遇到了完全相同的问题,花了大约 3 个小时在谷歌上找到上述解决方案。

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 2022-01-23
      • 2017-03-11
      • 1970-01-01
      • 2020-06-29
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多