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

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

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

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

phantomjs-1.9.1-windows.zipphantomjs windows下载

casperjs 1.1-beta1casperjs 下载

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

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

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

插入代码:

01var casper = require('casper').create();

02casper.start('https://passport.baidu.com/v2/?login', function() {

03this.fill('div[id="loginForm"]', {

04'userName': 'whcyc2002',
利用phantomjs+casperjs实现登陆抓取网页并截图 phantomjs抓取页面

05'password': '*******'

06}, false);

07});

08

09casper.then(function() {

10this.click('input[]');

11this.echo('login...');

12});

13

14casper.then(function() {

15this.wait(3000,function() {

16this.capture("baidu.png");

17});

18});

19casper.run();

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

输出 login...

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



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

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

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

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

简单介绍一下原理

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

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

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/98986.html

更多阅读

如何截取保存整个网页内容 截图如何截取整个网页

如何截取保存整个网页内容——简介在浏览网页时,有时候我们需要截取整个网页,但是用prtsc键操作或者qq截图等只能得到当前屏幕所能见到的画面,那么该怎么办呢?请看如下操作。如何截取保存整个网页内容——工具/原料浏览器(百度浏览器等)

怎样给整个网页截图 精 怎么截图整个网页

怎样给整个网页截图 精——简介?很多时候我们需要给这个网页截图,但是一般的截图工具只能将你屏幕上看到的内容截取,而无法截取看不到的部分,这样是无法给整个网页截图的,下面我分享几个方法来给整个网页截图,这几个方法的共同之处都是使

利用SiteServerCMS批量实现站群更新 phpcms 批量更新url

曾经听说过无数的大牛批量做站几十个,把鸡蛋放在不同的篮子,一个站一天一刀的收入,这样赚钱就多多了,看了很多CMS似乎都没有办法实现这个功能,而较早的CMSware似乎有这样的功能,但已经很久都没有再更新了,后续维护恐怕很麻烦。鄙人根据自

各种网页截图工具 chrome网页截图工具

simon 星期二, 04/12/2011 - 01:19 发布网页截图工具,我相信很多人在日常工作中都要用到,我现在用的是Skitch,非常不错的一款Mac下的截图软件。网页截图的方法有很多,主要分为浏览器截图插件、屏幕截图软件以及在线网页截图工具。一、

声明:《利用phantomjs+casperjs实现登陆抓取网页并截图 phantomjs抓取页面》为网友狂舞炫尊分享!如侵犯到您的合法权益请联系我们删除