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

How can I screen scrape a multi page application using javascript?

如何抓取多页应用程序的屏幕?我想使用 Javascript 来执行此操作。下面是我考虑过的方法和遇到的问题。

在 Node 应用程序中使用 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 文件、图像)保存到文件系统,您可以查看 website-scraper nodejs 包 https://www.npmjs.com/package/website-scraper

它还有 PhantomJS 插件,可以处理单页应用程序