gpt4 book ai didi

node.js - 使用 Node.js 进行网页抓取时,是否可以在页面上运行所有 JavaScript? (即模拟一个真实的浏览器?)

转载 作者:搜寻专家 更新时间:2023-10-31 22:44:13 43 4
gpt4 key购买 nike

我正在尝试使用 node.js 进行一些网络抓取。使用 jsdom,很容易加载 DOM 并将 JavaScript 注入(inject)其中。我想更进一步:运行从网页链接到的所有 JavaScript,然后检查生成的 DOM,包括元素的视觉属性(高度、宽度等)。

到目前为止,当我尝试使用 jsdom 检查 DOM 元素的维度时,我得到了 NaN

这可能吗?

令我印象深刻的是有两个截然不同的挑战:

  1. 运行网页上的所有JS
  2. 让 Node 除了模拟 DOM 之外还模拟窗口/屏幕渲染

提出问题的另一种方式:是否可以将 node.js 用作可以编写脚本的完全 headless 浏览器?

如果这不可能,是否有人对我可以使用哪个库来执行此操作有建议?我相对语言不可知论者。

最佳答案

看看 PhantomJS。使用起来非常简单。

http://www.phantomjs.org/

PhantomJS is a command-line tool that packs and embeds WebKit. Literally it acts like any other WebKit-based web browser, except that nothing gets displayed to the screen (thus, the term headless). In addition to that, PhantomJS can be controlled or scripted using its JavaScript API.

关于node.js - 使用 Node.js 进行网页抓取时,是否可以在页面上运行所有 JavaScript? (即模拟一个真实的浏览器?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7842507/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com