打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

最近有个任务要求定时自动登陆某网站,访问指定页面并且进行截图.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 

插入代码:

01var casper = require('casper').create();
02casper.start('https://passport.baidu.com/v2/?login', function() {
03    this.fill('div[id="loginForm"]', {
04        'userName': 'whcyc2002',
05        'password': '*******'
06    }, false);
07});
08   
09casper.then(function() {
10  this.click('input[class="pass-button pass-button-submit"]');
11  this.echo('login...');
12});
13   
14casper.then(function() {
15    this.wait(3000,function() {
16        this.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操作

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)
在自己电脑安装脚本执行机
casperjs在拆分文件后的中文乱码问题的解决
使用 JavaScript 截屏
网页转图片,html生成图片,网页生成图片(基于linnux+phantomjs)
Python爬虫入门,快速抓取大规模数据(第四部分)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服