Javascript Web抓取JS驱动的站点而不渲染
我最近一直在抓取一些JS驱动的页面。据我所知,有两种加载内容的方法:静态(随时可用的HTML页面)和动态(从原始数据生成HTML代码)。我知道XHR,我已经成功地截获了一些 但现在我遇到了一件奇怪的事情——网站在页面完全加载后动态加载内容,但没有XHR。这怎么可能 我的猜测是:内部js文件正在发出一些隐藏请求(传输数据)并基于响应构建页面。 我该怎么办 另外,我对基于硒的解决方案不感兴趣——它们是众所周知的,但速度慢且效率低。Javascript Web抓取JS驱动的站点而不渲染,javascript,python,python-3.x,web-scraping,Javascript,Python,Python 3.x,Web Scraping,我最近一直在抓取一些JS驱动的页面。据我所知,有两种加载内容的方法:静态(随时可用的HTML页面)和动态(从原始数据生成HTML代码)。我知道XHR,我已经成功地截获了一些 但现在我遇到了一件奇怪的事情——网站在页面完全加载后动态加载内容,但没有XHR。这怎么可能 我的猜测是:内部js文件正在发出一些隐藏请求(传输数据)并基于响应构建页面。 我该怎么办 另外,我对基于硒的解决方案不感兴趣——它们是众所周知的,但速度慢且效率低。 P.P.S.我主要是后端开发人员,所以我不熟悉JS 如今,您不再需要
P.P.S.我主要是后端开发人员,所以我不熟悉JS 如今,您不再需要使用硒来进行报废。Chrome浏览器现在可以在无头模式下使用,在页面完全加载后,您可以运行抓取脚本。 这里有一个简单的指南:
有nodejs库可以驱动它(chrome remote interface),但缺点是我找不到python库。你可以试试,或者PhantomJS不是一个选项-仍然太慢,但invoker.io看起来不错-我会检查它的,谢谢!你能分享到那个网站的链接吗?你想提取什么样的信息?Albertoshop.de Brax.com Digel-shop.com-就像这些我需要刮好的手帕,但这个解决方案不适合。Chrome的速度很慢,因为加载站点的图像等等。因此,我不想使用浏览器仿真。但我想你的答案对很多人都会有用!如果图像是isue,只需添加--disable images标志谢谢,但我确实需要使用实际的api调用来获取数据。所以我想知道如何得到它们。