【问题标题】:Why am I not able to extract names of books from daraz为什么我无法从 daraz 中提取书名
【发布时间】:2021-09-09 11:35:02
【问题描述】:

我尝试在 scrapy shell 中从 Daraz 抓取书籍,但我什么也没得到。 链接:Daraz
这是我得到的结果:

In [90]: response.css('#root > div > div.ant-row.c10-Cg > div:nth-child(1) > div > div.ant-col-20.ant-col-push-4.c1z9Ut
    ...:  > div.c1_t2i > div:nth-child(1) > div > div > div.c3KeDq > div.c16H9d > a::text').getall()
Out[90]: []

【问题讨论】:

  • 请在文本而非图片中包含任何代码/错误
  • 您希望我们如何在不共享任何代码的情况下提供帮助?

标签: python web-scraping scrapy css-selectors


【解决方案1】:

Daraz 是一个动态生成的网站。这意味着,某些项目仅在实际浏览器打开网站时生成。

当您从 python 文件中发出 get 请求时,您只会获得项目应该去哪里的骨架,而不是实际项目,因此它不会识别您发送的类名。

如果你是初学者,我推荐你使用 Selenium 来抓取动态生成的网站。

【讨论】:

  • 更多查询:1) 我如何知道一个网站是否是“动态生成的网站”? 2) 我成功地从 Flipcart 和 amazon 抓取数据,所以它们不是“动态生成的网站”吗? 3)与scrapy相比,Selenium难吗?使用它有什么好处?
  • 1.事实上,大多数网站都是动态生成的。最好的了解方法是发出获取请求,并将您在控制台中获得的 HTML 与网站的检查元素选项卡进行比较。如果代码看起来不同,这主要意味着您正在查看一个动态网站。 2. 你是从搜索结果中抓取了类似的数据还是从产品页面抓取了一些东西?完整的产品页面可以静态报废;搜索结果很麻烦。在得出任何结论之前,我必须先查看代码。
  • 3.不! Selenium 易于学习和使用。现在,请记住,selenium 主要是一种自动化工具。这意味着您还可以使用 selenium 浏览不同的网站和网页,它也可以用于在需要的地方自动点击和填写数据。
猜你喜欢
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-12
  • 2016-05-25
  • 1970-01-01
相关资源
最近更新 更多