【问题标题】:Can not get all the data from the link while using selenium使用 selenium 时无法从链接中获取所有数据
【发布时间】:2021-02-15 22:51:20
【问题描述】:

我是 selenium 和抓取数据的新手,并试图从以下网站中的类名 = rd-review 获取所有数据,但是代码不返回任何数据。

有什么解决办法吗?

from bs4 import BeautifulSoup
from selenium import webdriver
import pandas as pd

op = webdriver.ChromeOptions()
op.add_argument('--ignore-certificate-errors')
op.add_argument('--incognito')
op.add_argument('--headless')
driver = webdriver.Chrome(executable_path='C:/Users/MS CM/chromedriver.exe',options=op)
driver.get('https://www.real.de/product/325971045/?id_unit=382673369576')


elem = driver.find_elements_by_class_name('rd-review__stars')

for e in elem:
    print(e)

这是我要抓取的数据的图片:

【问题讨论】:

  • 你到底想刮什么? svg 类中没有文本。
  • 不要发布代码截图。将代码作为文本传递到您的问题中。

标签: python selenium beautifulsoup web-crawler


【解决方案1】:

您不需要selenium 来获取评论数据。这一切都通过 API 实现。

import requests


reviews = "https://www.real.de/pdp-test/api/v1/325971045/product-reviews/?offset=0&limit=500"
data = requests.get(reviews).json()
print(f"Total reviews: {data['totalReviews']} | Average rating {data['averageRating']}")

for review in data['reviews']:
    print(f"{review['title']} - {review['rating']}")

输出:

Total reviews: 284 | Average rating 4.3
Sehr schlecht - 1
Hervorragende Qualität - 5
Preis und Qualität überzeugen - 5
Angeblich hochwertige Qualität  - 2
Schlafkomfort bestens - 5
Hält was es verspricht - 5
Bin begeistert - 5
Süße Träume - 5
Klasse! - 5
Nach 2 Minaten komplett durchgelegen - 1
Sehr schlechte Matratze  - 1
Top Produkt  - 5
Ausgezeichnet!!!!!! - 5
and so on...

【讨论】:

  • 非常感谢。我能问你我如何获得这样的评论的链接吗?如果我不仅要抓取评论,还要抓取产品描述和其他数据,是否有可能?
  • 查看您最喜欢的浏览器的开发者工具。然后转到 Network 并选择 XHR 选项卡。
  • 我按照您写的内容进行操作,但 XHR 选项卡中没有任何内容。对不起。我是新手:(。
  • 打开一个新的私人窗口。然后,打开 Developer Tool,选择 Network 和 XHR。最后,粘贴链接并观察网络流量。
  • 哦,谢谢。我现在找到了链接。但是,我可以使用上面的链接抓取任意次数吗?因为以前我被网站封了一次ip? (不是这个网站,而是另一个网站)
猜你喜欢
  • 1970-01-01
  • 2016-04-18
  • 2020-09-13
  • 2018-03-26
  • 1970-01-01
  • 2021-11-25
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多