我有一个网页,其中有一些 JS API 不会改变 dom,但会返回一些数字。我想编写一个 NodeJS 应用程序来下载此类页面并在下载页面的上下文中执行这些功能。
我正在寻找 Cheerio 进行页面抓取.. 但是虽然我看到使用它导航和操作 DOM 是多么容易,但我看不到任何运行页面功能的访问权限。有可能做到吗?
我应该看看 jsdom 吗?
谢谢
我有一个网页,其中有一些 JS API 不会改变 dom,但会返回一些数字。我想编写一个 NodeJS 应用程序来下载此类页面并在下载页面的上下文中执行这些功能。
我正在寻找 Cheerio 进行页面抓取.. 但是虽然我看到使用它导航和操作 DOM 是多么容易,但我看不到任何运行页面功能的访问权限。有可能做到吗?
我应该看看 jsdom 吗?
谢谢
听起来您想使用 PhantomJS,它将提供完全渲染的输出,然后在上面使用cheerio。
Cheerio 和 jsdom 都是 HTML 抓取工具,没有执行 JavaScript 的概念。如果您希望访问的 API 是用 JavaScript 编写的,则几乎没有什么可以阻止您提取它们并在 node.js 中运行它们。但请注意,下载/执行任意 JavaScript 可能会带来巨大的安全风险。如果您想模拟浏览器的行为,请查看http://phantomjs.org/。这是 Node 的无头浏览器,可以做普通浏览器可以做的所有事情。