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

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

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

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

下载完 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 的图片 类似这样

fbaeb744374d6f7927ae333bc3b0c571.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操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值