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

问题描述 投票:0回答:1

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

javascript html node.js parsing web-scraping
1个回答
1
投票

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

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

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