使用Node.js进行Web抓取时,我可以在页面上运行所有JavaScripts吗?(即模拟真实的浏览器?)

Ted*_*son 5 screen-scraping node.js

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

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

这可能吗?

令我感到震惊的是,有两个截然不同的挑战:

  1. 在网页上运行所有JS
  2. 除了DOM之外,让节点模拟窗口/屏幕渲染

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

如果这是不可能的,有没有人建议我可以使用哪些库来执行此操作?我相对语言不可知.

Gil*_*not 1

您可以使用:

  • htmlunit(java、jython)
  • PyQtWebKit 或 pygtk + webkit (python)
  • WWW::Mechanize::Firefox 从 Firefox 中抓取 (perl)
  • Win32-IEAutomation 从 MS Internet Explorer (perl) 中抓取

所有这些解决方案也可以运行 javascript。

您可以直接从http://stackoverflow.com搜索中找到许多示例代码