javascript - Node.js中的Webscraper,JS修改DOM

标签 javascript html node.js parsing web-scraping

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

最佳答案

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

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

  • 您可以查看要抓取的网站上的开发人员工具,并尝试查找可获取所需数据的 xhr 请求。然后就可以直接调用这个url了。

  • 您可以使用 headless 浏览器抓取,例如 PhantomJSCasperJS 。这些包将尝试使用包含的 javascript 资源尽可能好地修改下载的 dom。

关于javascript - Node.js中的Webscraper,JS修改DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50388441/

相关文章:

HTML5 canvas drawImage 使用点?

node.js - 在 Mongoose 中存储 "findOne"的值并使用 "find"插入返回值

javascript - jquery ajax 和 html

javascript - 使用 jQuery 解析 XML 并填充文本字段

javascript - Three.js,从Collada导入的Camera看不到物体场景

php - <ul><li> 点击显示/隐藏子菜单

node.js - 如何使用 mongoose 运行原始 mongoDB 命令?

node.js - 我应该如何自动启动我的 nodejs 应用程序进行测试

javascript - 从 View 中隐藏 JQuery Accordion 内容

JavaScript 不断返回 0