【问题标题】:Web-Scraping JS-driven sites without rendering网页抓取 JS 驱动的网站,无需渲染
【发布时间】:2017-07-11 09:36:31
【问题描述】:

我最近一直在抓取一些 JS 驱动的页面。据我所知,有两种加载内容的方法:静态(准备好使用 HTML 页面)和动态(从原始数据就地生成 HTML 代码)。我知道XHR,我已经成功拦截了一些。

但现在我遇到了奇怪的事情 - 网站在页面完全加载后动态加载内容,但没有 XHR。怎么可能?

我的猜测是:内部 js 文件正在发出一些隐藏请求(传输数据)并根据响应构建页面。 我该怎么办?

附:我对基于硒的解决方案不感兴趣——它们是众所周知的,但速度慢且效率低。 附言我主要是后端开发人员,所以我对JS不熟悉。

【问题讨论】:

  • 你可以试试phantomjsprerender.io
  • PhantomJS 不是一个选项 - 仍然太慢,但presenter.io 看起来不错 - 我会检查一下谢谢!
  • 你能分享到那个网站的链接吗?你想提取什么信息?
  • Albertoshop.de Brax.com Digel-shop.com - 像这些
  • 我要刮货

标签: javascript python python-3.x web-scraping


【解决方案1】:

如今,您不再需要使用 selenium 进行报废。 Chrome 浏览器现在可以在无头模式下使用,您可以在页面完全加载后运行抓取脚本。 有简单的指南:

https://developers.google.com/web/updates/2017/04/headless-chrome

有用于驱动它的nodejs库(chrome-remote-interface),但缺点是我找不到python之一。

【讨论】:

  • 谢谢,但这个解决方案不适合。由于加载站点的图像等原因,Chrome 很慢。因此,我不想使用浏览器仿真。但我想你的回答会对很多人有用!
  • 如果图像是问题,只需添加 --disable-images 标志
  • 谢谢,但我确实需要使用实际的 api 调用来获取数据。所以我想知道如何获得它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多