zoukankan      html  css  js  c++  java
  • CasperJS基于PhantomJS抓取页面

    CasperJS基于PhantomJS抓取页面

    Casperjs是基于Phantomjs的,而Phantom JS是一个服务器端的 JavaScript API 的 WebKit。
    CasperJS是一个开源的,用JavaScript编写的,基于PhantomJS的导航脚本和测试工具 ,它简化了定义一个完成的导航操作所需的步骤,还提供了很有用的函数封装,方法,和语法糖,它可以完成下面这些常见任务:
    定义 & 排序浏览器导航步骤
    填充 & 提交表单
    点击 & 跟踪链接
    捕获网页截图 (还可以截取某一区域)
    在远程DOM上进行断言测试
    记录事件
    下载资源,包括二进制文件
    编写功能测试套件,结果保存为JUnit XML文件
    抓取网页内容

    CasperJS,基于PhantomJS的工具包 - 紫云飞 - 博客园
    http://www.cnblogs.com/ziyunfei/archive/2012/09/27/2706254.html

    后台连接网站和页面交互一下子变得异常简单起来。尤其是对需要登录才可进行的网页操作。

    登录沪江英语自动打卡
    var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug',
    pageSettings: {
    loadImages: false,
    loadPlugins: true,
    userAgent: 'Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0'
    }
    });
    //phantom.outputEncoding="gbk";
    casper.options.viewportSize = { 1680, height: 924};
    casper.start('http://bulo.hujiang.com/app/login?source=nbulo&returnurl=/home/');
    casper.waitForSelector("form#myform input[name='txtUsername']",
    function success() {
    this.test.assertExists("form input[name='txtUsername']");
    this.fill("form",{
    'txtUsername':'shixiaobao17',
    'txtPassword':'×××××your password*****'
    },false);
    this.click("input#btnLogin");
    },
    function fail() {
    this.test.assertExists("form input[name='txtUsername']");
    });

    casper.waitFor(function check() {
    return this.getCurrentUrl().indexOf("bulo.hujiang.com/home")>-1;
    }, function then() {
    console.log("登录成功!!!!!!!!!!!!");
    }).then(function(){
    console.log("执行登录后的其它操作!!!!!!!!!!!!");
    if(this.exists("#btn_card_do")){
    this.click("#btn_card_do");
    this.waitForSelector("#my_hb_btn",function success(){
    console.log("打卡成功!");
    },function fail(){
    console.log("打卡失败!");
    });
    }else{
    console.log("今天已经打过卡啦!");
    }

    });
    casper.run(function() {this.test.renderResults(true);});

  • 相关阅读:
    Python交互设计_接口设计
    hibernate注解——@Temporal
    java日期格式处理
    Unknown tag
    个人总结
    学习进度条——第十七周
    学习进度条——第十六周
    学习进度条——第十五周
    第二阶段冲刺——个人总结10
    学习进度条——十四周
  • 原文地址:https://www.cnblogs.com/zdz8207/p/CasperJS-PhantomJS.html
Copyright © 2011-2022 走看看