• 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);});

  • 相关阅读:
    Golang之排序算法
    Golang之一个简单的聊天机器人
    golang之流程控制(注意点)
    golang之指针
    vs code中自动添加注释插件koroFileHeader
    stack栈、heap堆的说明图
    c语言中的数据类型的最大最小值
    数组问题:a与&a有的区别
    STM32F10x之NVIC
    大小端的另一种测试方法
  • 原文地址:https://www.cnblogs.com/zdz8207/p/CasperJS-PhantomJS.html
Copyright © 2020-2023  润新知