如何使用 javascript 对多页应用程序进行屏幕抓取?



如何筛选多页应用程序?我想使用Javascript来做到这一点。以下是我考虑过的方法和遇到的问题。

在节点应用程序中使用 Fetch Web API 获取网页

问题:网页在抓取时无法正确加载。我想页面上的所有 javascript 在获取页面时都不会运行。

从控制台运行 JavaScript

这是将 JavaScript 直接注入文档的一种非常简单的方法。但一个问题是打开网页是浏览器,粘贴到控制台是手动工作。另一个问题是,虽然这适用于单页应用程序,但对于多页应用程序来说变得非常麻烦。

有什么更好的方法可以解决我遇到的问题?

取决于你在做什么。如果您只是想从某个网站获得一些,那么在页面中注入JS是要走的路。

但正如您所说,这是手动工作,我推断您想抓取网站并保存数据。在这种情况下,服务端脚本更适合。要解决JavaScript未加载的问题,您可以使用PhantomJs或Horseman之类的东西。

看看这个: https://medium.com/@designman/building-a-performant-web-scraper-in-node-js-5f4449674163

如果你想将网站内容(html,js,css文件,图像(保存到文件系统,你可以看看nodejswebsite-scraper包 https://www.npmjs.com/package/website-scraper

它还具有PhantomJS插件,允许处理单页应用程序

最新更新