当使用Node.js进行web抓取时,我可以运行页面上的所有Java脚本吗?(即,模拟真实的浏览器?)
我正在尝试使用node.js进行一些web抓取。使用当使用Node.js进行web抓取时,我可以运行页面上的所有Java脚本吗?(即,模拟真实的浏览器?),node.js,screen-scraping,Node.js,Screen Scraping,我正在尝试使用node.js进行一些web抓取。使用jsdom,很容易加载DOM并将JavaScript注入其中。我想更进一步:运行网页中链接到的所有JavaScript,然后检查生成的DOM,包括元素的视觉属性(高度、宽度等) 到目前为止,当我尝试用jsdom检查DOM元素的维度时,我得到了NaN 这可能吗 我感到有两个截然不同的挑战: 运行网页上的所有JS 除了DOM之外,让节点模拟窗口/屏幕渲染 问这个问题的另一种方式是:是否可以将node.js用作完全无头的浏览器,您可以编写脚本 如果这
jsdom
,很容易加载DOM并将JavaScript注入其中。我想更进一步:运行网页中链接到的所有JavaScript,然后检查生成的DOM,包括元素的视觉属性(高度、宽度等)
到目前为止,当我尝试用jsdom检查DOM元素的维度时,我得到了NaN
这可能吗
我感到有两个截然不同的挑战:
- htmlunit(java,jython)
- PyQtWebKit或pygtk+webkit(python)
- WWW::Mechanize::Firefox从Firefox中删除(perl)
- Win32 IEAutomation从MS internet explorer(perl)中刮取
您将在搜索中找到许多示例代码看看PhantomJS。使用起来非常简单 PhantomJS是一个打包和嵌入WebKit的命令行工具。从字面上看,它的行为与任何其他基于WebKit的web浏览器类似,只是没有任何内容显示在屏幕上(因此,术语headless)。除此之外,PhantomJS还可以使用其JavaScript API进行控制或编写脚本
我不知道node.js,但你可以看看htmlunit或selenium+headless gem