首页 > js, 开发 > 使用casperjs爬取cnzz统计数据

使用casperjs爬取cnzz统计数据

2016年5月26日 发表评论 阅读评论

通过cnzz统计数据来监测网站的运行是运营和运维的一个重要手段,当站点比较多时,自动获取站点的统计数据能够极大的提高工作效率。

然而cnzz没有提供查询接口,需要我们自己手动编写代码来爬取数据。通过抓包可以发现需要很多步骤才能拿到数据,并且每次请求都携带了一些cookies等验证信息。如果一步步来实现的话非常麻烦,实际上我用Snoopy尝试进行抓取并不成功,总是跳转回登录url。

同事提供了一种方法:使用phantomjs模拟登录,试了一下,还真是方便很多。

这里提供了使用casperjs(封装了phantomjs)来进行抓取的实现代码,仅供参考。

var casper = require("casper").create()
casper.start('http://new.cnzz.com/v1/login.php?siteid=12345654321', function(){
    this.fill('form[name="form1"]', {
    'password': 1234560
}, true);   //true, 填充完毕后,立刻提交表单
});
casper.then(function(){
    var today=this.evaluate(function(){
        var tbl=document.getElementById("overview_top_order_table");
        return {
            pv:tbl.rows[1].cells[1].innerHTML,
            uv:tbl.rows[1].cells[2].innerHTML,
            ip:tbl.rows[1].cells[3].innerHTML,
        };
    });
    this.echo(today.pv);
    this.echo(today.uv);
    this.echo(today.ip);
});
casper.run();
您可能需要这些【参考资料】:
零一积流|IT参考 原创文章,转载请注明出处: http://www.it-refer.com/2016/05/26/use-casperjs-to-retrieve-statistics-from-cnzz


  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.