【问题标题】:Not able to load and scrape data from webpage using Scrapy无法使用 Scrapy 从网页加载和抓取数据
【发布时间】:2018-07-29 06:37:11
【问题描述】:

我正在尝试使用 Python 中的 Scrapy 框架从 https://www.grailed.com/ 抓取数据,但是当我在

scrapy shell

并尝试学习如何提取数据,使用

response.css("my css path")

response.xpath("my xpath")

我总是得到空列表。然后,当我在 shell 中获取并查看https://www.grailed.com 的响应时,我得到一个几乎空白的页面,其中不包含我想要抓取的数据(项目、价格等)。在这种情况下,Scrapy 还能满足我的目的吗?如果没有,是否有任何替代方案?谢谢!

【问题讨论】:

  • 我建议你使用Regex 来抓取数据?您希望得到一个全面的答案来解释它吗?
  • 我设法解决了我的问题,方法是使用 Selenium 打开加载所有 JS 的网页的无头实例,然后从那里抓取数据。但我也想了解如何使用正则表达式来抓取数据。

标签: python web-scraping scrapy


【解决方案1】:

本网站使用 JS 加载内容。 Scrapy 不支持 JS。这就是为什么您会看到没有数据本身的空 html 模板。 可能的解决方案:

  1. 尝试使用将执行页面上所有 JS 的无头浏览器。有时我发现 phantomjscloud 非常方便用于渲染 JS 站点的 API 解决方案。你可以这样使用 - enter link description here
  2. 查看network conenctions选项卡,看看有没有API调用返回你需要的json格式的数据,可以直接获取。

【讨论】:

  • 有没有办法在不手动去Chrome开发者的情况下获取已经是JSON格式的数据?
  • 是的。您可以模仿 post 请求并使用 scrapy 或 python 请求发送它。它将返回 Json 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2018-07-24
相关资源
最近更新 更多