用cheerio执行抓取的JavaScript

Ton*_*nyx 5 javascript node.js web-scraping cheerio

我有一个网页,其中有一些JS API不会改变dom,但返回一些数字.我想编写一个NodeJS应用程序来下载这些页面并在下载页面的上下文中执行这些功能.

我正在寻找cheerio页面抓取...但是虽然我看到用它来导航和操作DOM是多么容易,但我没有看到任何运行页面功能的访问权限.有可能吗?

相反,我应该在jsdom看?

谢谢

小智 5

听起来您想使用 PhantomJS,它将提供完全渲染的输出,然后使用cheerio。

  • 这些天你想要 Puppeteer。 (2认同)

Roe*_*den 0

Cheerio 和 jsdom 都是 HTML 抓取工具,没有执行 JavaScript 的概念。如果您希望访问的 API 是用 JavaScript 编写的,那么几乎没有什么可以阻止您提取它们并在节点内运行它们。但请注意,下载/执行任意 JavaScript 可能会带来巨大的安全风险。如果您想模拟浏览器的行为,请查看http://phantomjs.org/。这是 Node 的无头浏览器,可以完成普通浏览器可以做的所有事情。

  • jsdom **不仅仅是**一个没有执行 JavaScript 概念的 HTML 抓取工具。请参阅文档:[初始化生命周期](https://github.com/tmpvar/jsdom/blob/master/README.md#initialization-lifecycle) 和[对于硬核:jsdom.jsdom](https://github.com/github.com/tmpvar/jsdom/blob/master/README.md#initialization-lifecycle) com/tmpvar/jsdom/blob/master/README.md#for-the-hardcore-jsdomjsdom) (4认同)