5

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

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

我应该看看 jsdom 吗?

谢谢

4

2 回答 2

5

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

于 2013-08-28T01:52:51.820 回答
0

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

于 2013-02-22T18:27:30.453 回答