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 = {width: 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);});

CasperJS基于PhantomJS抓取页面相关推荐

  1. 爬虫抓取页面数据原理(php爬虫框架有很多 )

    爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...

  2. apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容

    Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求 1.简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提 ...

  3. 怎么打开网卡rss_RSS 进阶篇:Huginn - 真·为任意网页定制 RSS 源(PhantomJs 抓取)...

    定制网页RSS源主要有FEED43和Huginn两种方法. FEED43:简单免费,六小时抓取一次,每次抓取20条静态页面.使用攻略- RSS 入门篇:FEED43&FeedEx-为静态网页定 ...

  4. java response 获得code_Java教程分享使用HttpClient抓取页面内容

    Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求 1.简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提 ...

  5. Python中使用PhantomJS抓取Javascript网页数据

    有些网页不是静态加载的,而是通过javascirpt函数动态加载网页,比如下面这个网页,表格中的看涨合约和看跌合约的数据都是通过javascirpt函数从后台加载.仅仅使用beautifulsoup并 ...

  6. jquery页面跳转带cookie_搭建谷歌浏览器无头模式抓取页面服务,laravelgt;phpgt;pythongt;docker...

    背景: 公司管理系统需要获取企业微信页面的配置参数如企业名.logo.人数等信息并操作,来隐藏相关敏感信息并自定义简化企业号配置流程 第一版已经实现了扫码登录获取cookie,使用该cookie就能获 ...

  7. Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)

    文章目录 一.使用tesseract做OCR验证码识别 二.代理服务器设置 三.反爬与防反爬 四.封装一个抓取页面的函数 一.使用tesseract做OCR验证码识别 1.cookie, sessio ...

  8. python 无头模式_搭建谷歌浏览器无头模式抓取页面服务,laravel-php-python-docker !!!...

    背景: 公司管理系统需要获取企业微信页面的配置参数如企业名.logo.人数等信息并操作,来隐藏相关敏感信息并自定义简化企业号配置流程 第一版已经实现了扫码登录获取cookie,使用该cookie就能获 ...

  9. 使用Selenium+PhantomJS抓取腾讯动漫漫画图链接

    前言 上周一位朋友在进行一些项目开发时,其中需要用到腾讯动漫中动漫的图片,但是自己手动一张一张另存为图片进行保存太浪费时间了,于是就用Python来进行抓取,但是很无奈腾讯动漫的章节动漫DOM元素是异 ...

最新文章

  1. day1---while循环语句和练习
  2. C# 获取 IE 临时文件
  3. Pandas 多层级索引的数据分析案例,超干货!
  4. 0x43.数据结构进阶 - 线段树
  5. oracle触发器比较,Oracle使用触发器和mysql中使用触发器的比较
  6. PHP webservie连接.net接口
  7. Node接口也定义了一些所有节点类型都包含的特性和方法
  8. labview和python哪个易学_如何学好labview?
  9. 用 VC2012 产生脱离VC运行库的 C/C++ 程序
  10. can 升级软件 上位机 C# 源码 支持STM32升级 提供源码 提供CAN协议
  11. 用python模拟clark变换和park变换
  12. [附源码]Python计算机毕业设计超市商品管理系统
  13. 关于单点登录的一点想法
  14. 简单的员工信息管理系统
  15. 【论文阅读第一期】Goods:Organizing Google’s Datasets总结
  16. 从抄书到开源之巅:章亦春的程序人生
  17. C++Primer-Function chapter
  18. JAVA - 学习记录第八天
  19. Apollo第二讲—apollo自动驾驶调试及仿真实践
  20. python3连接Oracle数据库

热门文章

  1. 安卓+php推,使用 PHP 消息队列实现 Android 与 Web 通信
  2. python爬虫网络请求超时是什么意思_python爬虫怎么处理异常和超时?
  3. showmodaldialog 为什么不能复制_防复制的门禁读头可以防止UID和FUID读卡器
  4. 神兽来了服务器维护,20191204维护公告解读
  5. mysql db 复制_MySQL管理工具MySQL Utilities — mysqldbcopy(6)
  6. bspline怎么使用 python_资源分享:微软官方的Python入门教程
  7. 归一化处理公式_特征工程连续特征的常见处理方式(含实例)
  8. python csv读取数据 去掉标题-Python读csv文件去掉一列后再写入新的文件实例
  9. rust矿洞绳子怎么爬下_为何一根绳子可以凭空升到天上?印度通天绳究竟是什么原理?...
  10. java 编写 欢迎你_社团联合会——java编程协会欢迎你的加入