如何屏幕抓取多页应用程序?我想使用Javascript做到这一点。这是我考虑过的方法和遇到的问题。
在Node应用程序中使用Fetch Web API来获取网页
问题:提取网页后,网页无法正确加载。我猜想在提取页面时页面上的所有javascript都不会运行。
从控制台运行JavaScript
这是将JavaScript直接注入文档中的非常简单的方法。但是一个问题是,打开网页是浏览器,粘贴到控制台是手动工作。另一个问题是,尽管这种方法适用于单页应用程序,但对于多页应用程序却变得非常麻烦。
有什么更好的方法可以解决我遇到的问题?
答案 0 :(得分:1)
取决于您在做什么。如果您只是想从某个网站上获取一些信息,则可以在页面中注入JS。
但是正如您所说的,这是我的手动工作,因此我推断您想抓取这些网站并保存数据。在这种情况下,服务端脚本更适合。要解决JavaScript无法加载的问题,您可以使用PhantomJs或Horseman之类的东西。
看看这个:https://medium.com/@designman/building-a-performant-web-scraper-in-node-js-5f4449674163
答案 1 :(得分:0)
如果要将网站内容(html,js,css文件,图像)保存到文件系统,则可以查看nodejs https://www.npmjs.com/package/website-scraper的website-scraper
包
它还具有PhantomJS插件,可处理单页应用程序