抓取页面
casperjs抓起页面用capture接口,但是你要是start之后马上抓的话,对一些还有后续ajax请求的页面是抓不全的,也就是部分页面会显示正在加载。所以比较低级的解决办法是wait一定的事件后再抓取。但是这个办法显然不够灵活。所以,最好是等待某个元素,当元素出现时调用capture,所以建议使用waitForSelector接口来完成该功能。
获取元素内容
在jquery里如果通过选择器找到一个元素后,调通用html()接口,得到的数据是节点的内容数据,关于这点,可以访问jquery的官网查看,但是有时候,你可能需要的是这个元素包含标签部分的数据,这时 casperjs提供的getHTML很好用。当然为了一致性,默认调用时获取到的是内容数据,但是如果设置第二个参数设置为true,就可以拿到整个节点的数据。具体还是看官方文档吧
casper.start('http://www.site.tld/', function() {
this.echo(this.getHTML('h1#foobar', true));
});