在node.js中的Webscraper,JS修改了DOM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在node.js中的Webscraper,JS修改了DOM相关的知识,希望对你有一定的参考价值。

我正在尝试写一个webscraper,以获得一些销售线索。问题是在现代网页设计中,大多数网站使用一些javascript来修改DOM(通常使用React,Angular,甚至只是一些jQuery)。问题是,如果我通过request node.js包废弃一些网站,并将html代码传递给cheerio,那么我根本无法解析代码并获得我想要的信息。相反,我所能看到的只是一些React.js组件¯_ツ_ /¯这个主题的任何资源都会有所帮助,在此先感谢。

答案

因为request包不会执行页面上的任何javascript。它只会按原样下载html。如果你想像浏览器那样看到实际的页面,你必须创建一个javascript解析器,以你想要的状态执行所有的javascript代码。

幸运的是,这里还有其他一些选择:

  • 您可以查看要抓取的网站上的开发人员工具,并尝试查找获取所需数据的xhr请求。然后你可以直接调用这个url。
  • 您可以像PhantomJSCasperJS一样使用无头浏览器抓取。这些包将尝试使用包含的javascript资源尽可能好地修改下载的dom。

以上是关于在node.js中的Webscraper,JS修改了DOM的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Node.js 中的“请求过多”错误?

在多个文件 node.js 之间共享和修改变量

Node.js:使用“fs”迭代目录时检查文件是不是为符号链接

如何从回调函数中修改全局变量。在 node.js 中

无法通过在 node.js 中切片来修改数组

Node.js 的安装与修改淘宝镜像