最近正在寻找一个网站爬虫的解决方案,目标是不仅能够把网站的页面“爬”下来,而且需要能够执行页面中的某些js脚本,以求得到js执行后的页面DOM树,这个问题恐怕也是爬虫面对很多富Ajax网站页面时的共同问题吧?!
在阅读了Kyle的大作http://hi.baidu.com/zhizhesky/blog/item/e4b1f6fada2652d5b58f314e.html之后,决定研究一下Cobra。
Cobra的确很强大,底层的js解析用到了Mozilla的Rhino。通过Cobra的确能够得到js执行后的DOM,但有个特例。那就是对于Form来说,所有的Input,其value不能被动态的改变,请看以下代码片段:
很不幸,Cobra在解析以上代码片段后,Form中n1的value并没有变成预期的google!