文档章节

利用phantomjs+casperjs实现登陆抓取网页并截图

酒逍遥
 酒逍遥
发布于 2013/07/30 16:31
字数 404
阅读 9752
收藏 23

最近有个任务要求定时自动登陆某网站,访问指定页面并且进行截图.windows ,linux实现均可.

开始想利用php 调用com组件来完成.截图是OK的,但是涉及到登陆就没法实现了.

后来网上查了下资料发现用phantomjs + casperj可以完美实现


phantomjs-1.9.1-windows.zip  phantomjs windows下载


casperjs 1.1-beta1 casperjs 下载


下载完 phantomjs和casperjs 后解压到任意目录即可. 然后修改 casperjs目录下 batchbin\casperjs.bat文件的内容

call phantomjs  改成 call phantomjs的路径(例如:E:/phantomjs)


任意目录下新建js 文件 例如: E:/test.js 

插入代码:

var casper = require('casper').create();
casper.start('https://passport.baidu.com/v2/?login', function() {
    this.fill('div[id="loginForm"]', {
        'userName': 'whcyc2002',
        'password': '*******'
    }, false);
});
  
casper.then(function() {
  this.click('input[class="pass-button pass-button-submit"]');
  this.echo('login...');
});
  
casper.then(function() {
    this.wait(3000,function() {
        this.capture("baidu.png");
    });
});
casper.run();

命令下执行  casperjs路径/batchbin/casperjs.bat E:/test.js 

输出 login...

然后目录下会多出一个 baidu.png 的图片 类似这样

也可以通过外部调用的方式 ,例如用php  代码如下

exec("E:/casperjs/batchbin/casperjs.bat E:/test.js",$out);

通过这种方式就可以很方便的完成网页的截图.甚至是一些需要登陆的网页截图.

phantomjs 和 casperjs 也都有 linux版本. 所以linux下也是可以实现同样的功能的.


简单介绍一下原理

phantomjs 实际上是一个基于服务端的webkit引擎,内置了javascript的api.可以解析并渲染dom.相当于直接使用浏览器访问网址.

casperjs则是基于phantomjs的 js封装.用来实现一些dom操作

© 著作权归作者所有

酒逍遥

酒逍遥

粉丝 49
博文 40
码字总数 35454
作品 0
武汉
高级程序员
私信 提问
加载中

评论(2)

苏生不惑
苏生不惑
nice
xiaoding123
xiaoding123
3学习一下
python 淘宝系列(一):模拟登陆

前言 想实现python登录淘宝,大概有两种思路:1. 使用淘宝开放API接口; 2.使用模拟登陆发送post 数据登录。 两种方式各有优缺点。使用淘宝API,首先得装API库,比较大,有200多M,对小程序而...

艾柯
2014/01/07
10.9K
8
Linux 抓取网页实例(shell+awk)

上一篇博客讲了Linux抓取网页的方式,有curl和wget两种方式,这篇将重点讲Linux抓取网页的实例——抓取google play全球12国的游戏TOP排名 要抓取google play游戏排名网页,首先需要分析网页的...

长平狐
2013/01/06
979
0
PHP cURL工具的简单介绍

cURL通常是指使用URL语法进行数据传递的命令行工具和库,本文所介绍的是其PHP拓展最基本的使用。 cURL主要用来进行数据抓取,当然,还有更多强大的功能,一些复杂的操作,例如处理Cookie、表...

madbooker
2014/10/18
304
0
Java登陆3GQQ以及获取好友信息与好友聊天的简单实现

主要是通过java实现3GQQ的登陆,抓取好友信息(昵称,QQ号等等),以及获取聊天信息等等。 代码的灵感来自 @水之子哈哈 分享的一个php登陆3GQQ的代码。其实3GQQ的登陆以及抓取好友很简单,只...

汉唐
2012/08/23
917
1
《CURL技术知识教程》系列分享专栏

《CURL技术知识教程》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201737.html 文章 PHP采集相关教程之一 CURL函数库 php中通过curl模拟登陆discuz论坛的实现...

开元中国2015
2018/11/06
50
0

没有更多内容

加载失败,请刷新页面

加载更多

框架和库的区别

框架和库的区别 框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。 node 中的 express; 库(插件):提供某一个小功能,对项目的侵入性较小...

庭前云落
14分钟前
3
1
基于 Dawn 进行多工程管理

1. 简述 当一个项目中子工程较多时,就会面临「单仓库(Monorepo)」还是「多仓库(Multirepo)」管理的问题。当然两个方式各有优缺点,而我们选择多工程单 Repo 时,能够带来一些管理上的简...

阿里云官方博客
14分钟前
2
0
Joomla 4具有可自定义的HTML电子邮件模板

Joomla 4大约每个月都会发布一个Alpha版本。上个月,我们得到了一个新的管理模板。 Joomla 4的最新版本是Alpha 12。 该版本的主要新特性是可定制的电子邮件模板。您将能够控制从您的网站发送...

六艺网络专注于Joomla
18分钟前
2
0
Idea配置

配置文件idea64.exe.vmoptions -Xms128m, 16 G 内存的机器可尝试设置为 -Xms512m (设置初始的内存数,增加该值可以提高 Java 程序的启动速度。 ) -Xmx750m, 16 G 内存的机器可尝试设置为 ...

行者终成事
20分钟前
3
0
大小仅1MB!超轻量级的人脸识别模型火爆Github

项目地址:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB 近日,用户Linzaer在Github上开源了一款适用于边缘计算设备、移动端设备以及 PC 的超轻量级通用人脸检测...

编程资源库
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部