我想编写一个可以解释JavaScript的网络爬虫.基本上它是一个Java或PHP程序,它将URL作为输入并输出DOM树,类似于Firebug HTML窗口中的输出.最好的例子是Kayak.com,当您查看源代码时,您无法在浏览器上看到生成的DOM,但可以通过Firebug保存生成的HTML.
我该怎么做呢?有哪些工具可以帮助我?
Ruby的Capybara是一个集成测试库,但它也可以用来编写独立的Web爬虫.鉴于它使用像Selenium或无头WebKit这样的后端,它可以解释开箱即用的javascript:
require 'capybara/dsl' require 'capybara-webkit' include Capybara::DSL Capybara.current_driver = :webkit Capybara.app_host = "http://www.google.com" page.visit("/") puts(page.html)
我一直在使用HtmlUnit(Java).这最初是为单元测试页面设计的.它不是完美的javascript,但它在我的有限使用中没有让我失望.根据该站点,它可以在合理的程度上运行以下JS框架:
jQuery 1.2.6
MochiKit 1.4.1
GWT 2.0.0
Sarissa 0.9.9.3
MooTools 1.2.1
原型1.6.0
Ext JS 2.2
Dojo 1.0.2
YUI 2.3.0