我正在尝试使用 Node.js 进行一些网络抓取。使用jsdom
,很容易加载 DOM 并将 JavaScript 注入其中。我想更进一步:运行从网页链接到的所有 JavaScript,然后检查生成的 DOM,包括元素的视觉属性(高度、宽度等)。
到目前为止,我得到NaN
当我尝试使用 jsdom 检查 DOM 元素的尺寸时。
这可能吗?
让我印象深刻的是,存在两个不同的挑战:
- 运行网页上所有的JS
- 除了 DOM 之外,让 Node 模拟窗口/屏幕渲染
另一种提出问题的方式是:是否可以使用 node.js 作为可以编写脚本的完全无头浏览器?
如果这是不可能的,有人对我可以使用哪个库来执行此操作有建议吗?我对语言相对不可知。
看看 PhantomJS。使用起来非常简单。
http://www.phantomjs.org/ http://www.phantomjs.org/
PhantomJS是一个打包并嵌入WebKit的命令行工具。从字面上看,它的行为就像任何其他基于 WebKit 的 Web 浏览器一样,只不过屏幕上不显示任何内容(因此,术语“无头”)。除此之外,PhantomJS 可以使用其 JavaScript API 进行控制或编写脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)