网页爬虫,解析JavaScript ?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (3)
  • 关注 (0)
  • 查看 (215)

我想编写一个能够解释JavaScript的Web爬虫。基本上,它是Java或PHP中的一个程序,它以URL作为输入并输出DOM树,这与FirebugHTML窗口中的输出类似。最好的例子是Kayak.com,在这里,当您“查看源”时,您无法在浏览器上看到所显示的DOM,但是可以通过Firebug保存最终的HTML。

我该怎么做呢?有什么工具可以帮助我?

提问于
用户回答回答于

我大概理解你的意思了,你的意思是说,你想要弄一个可加载JS的爬虫,有一些内容是JS进行渲染或者处理的,后者干脆就是Ajax进行加载的,没办法在源代码中获得。

这种爬虫的编写通常有两个大的方法: 1:单独获取Ajax的内容,这种方法相对来说效率高

2:获取动态渲染好的页面,例如selenium框架等

用户回答回答于

我一直在使用HtmlUnit(Java)。这最初是为单元测试页面设计的。据该网站介绍,你可以合理运行以下JS框架:

  • jQuery 1.2.6
  • MochiKit 1.4.1
  • GWT 2.0.0
  • Sarissa 0.9.9.3
  • MooTools 1.2.1
  • Prototype 1.6.0
  • Ext JS 2.2
  • Dojo 1.0.2
  • YUI 2.3.0
用户回答回答于

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)

扫码关注云+社区

领取腾讯云代金券