while +next 循环 回到循环顶端
my $show_tip = 1;
sub login {
while (1) {
my $api ="https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=$uuid&tip=$show_tip&r=-$now&_=$now";
my $response = $ua->get($api);
print "1--\$show_tip is $show_tip\n";
print "2--\$api is $api\n";
sleep (2);
$ua->default_headers;
if ( $response->is_success ) {
$r = $response->decoded_content;
print "\$r is $r\n";
next unless defined $r;
my %data = $r =~ /window\.(.+?)=(.+?);/g;
if ( $data{code} == 201 ) {
print"手机微信扫码成功,请在手机微信上点击 [登录] 按钮...\n";
$show_tip = 0;
##回到循环顶部,此时请求的url是"https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=$uuid&tip=$show_tip&r=-$now&_=$now"; next;
}
elsif ( $data{code} == 200 ) {
print "正在进行登录...\n";
foreach ($r) {
if ( $_ =~ /window.redirect_uri="(.*?)"/ )
{
$api = $1;
print "\$api is $api\n";
my $response = $ua->get($api);
$ua->default_headers;
}
}
}; if ( $api =~ /https\:\/\/wx\.qq\.com\/cgi\-bin\/mmwebwx-bin\/webwxnewloginpage\?ticket=(.*?)\&uuid=(.*?)\&lang=(.*?)\&scan=(.*)/
)
{
print "\$1 is $1\n";
print "\$2 is $2\n";
print "\$3 is $3\n";
print "\$4 is $4\n";
$ticket=$1;
$user = $4;
print "\$user is $user\n";
return 1;
}
}
else {
die $response->status_line;
} }
}; centos6.5:/root/mojo#perl scan.pl
window.QRLogin.code = 200; window.QRLogin.uuid = "gduih3Nyww==";
$uuid is gduih3Nyww== 登录二维码已经下载到本地 [ /tmp/weixin_qrcode_bYwp.jpg ]
1--$show_tip is 1
2--$api is https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=gduih3Nyww==&tip=1&r=-1479440494&_=1479440494
$r is window.code=201;window.userAvatar = 'data:img/jpg;base64,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';
手机微信扫码成功,请在手机微信上点击 [登录] 按钮...
1--$show_tip is 0
2--$api is https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=gduih3Nyww==&tip=0&r=-1479440494&_=1479440494
$r is window.code=200;
window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AQV3nhqeStaayKkSthVOuQXu@qrticket_0&uuid=gduih3Nyww==&lang=zh_CN&scan=1479440653";
正在进行登录...
$api is https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=AQV3nhqeStaayKkSthVOuQXu@qrticket_0&uuid=gduih3Nyww==&lang=zh_CN&scan=1479440653
$1 is AQV3nhqeStaayKkSthVOuQXu@qrticket_0
$2 is gduih3Nyww==
$3 is zh_CN
$4 is 1479440653
$user is 1479440653
while +next 循环 回到循环顶端的更多相关文章
- python 循环、循环设计、循环对象
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 1.循环 循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进 ...
- (十一)if...else&for循环&while循环
----------------------------------if else------------------------------1.最基本的if语句:if name =="Al ...
- Python基础之if判断,while循环,循环嵌套
if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 . ...
- Python第四天 流程控制 if else条件判断 for循环 while循环
Python第四天 流程控制 if else条件判断 for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Python第二天 ...
- php之快速入门学习-13(PHP 循环 - While 循环)
PHP 循环 - While 循环 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块. PHP 循环 在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行.我们可以在代码中使用循 ...
- Python流程控制-while循环-for循环
写重复代码 是可耻的行为 -------------- 完美的分割线 -------------- 摘录自:http://www.runoob.com/python/python-loops.htm ...
- 『Python基础-7』for循环 & while循环
『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...
- 流程控制之while循环for循环
流程控制之while循环1.什么是循环 循环就是重复做某件事2.为什么要有循环 为了让计算机能够具备人重复做某件事的能力3.如何用循环 while语法: while 条件: code1 code2 c ...
- js循环(while循环,do while循环,for循环)相关知识点及练习
08.循环 1.循环! 循环的作用: 简化代码,处理重复执行的代码 遍历数组.json对象.节点集合 2.while循环 语法: while(循环的条件){ 循环体 } 3.循环的五大要素 循环变量 ...
随机推荐
- import com.sun.image.codec.jpeg.JPEGCodec不通过 Eclipse找不到包
Eclipse默认把这些受访问限制的API设成了ERROR.只要把Windows-Preferences-Java-Complicer-Errors/Warnings里面的Deprecated and ...
- MVC小系列(九)【引入namespace】
以前在页面引入一个namespace,可以这样: <%@ Import Namespace="Web.Helpers" %> 如果空间是所有页面都需要的,可以写进配置文 ...
- C#数据类型转换的几种形式
1.隐式转换:一般是低类型向高类型转化,能够保证值不发生变化. 隐式数值C#数据类型转换: 从 sbyte 到 short.int.long.float.double 或 decimal. 从 byt ...
- ASP和PHP限制IP访问 只允许指定IP访问 允许*号通配符过滤IP
/** * 检测访问的ip是否为规定的允许的ip * Enter description here ... */ function check_ip(){ $ALLOWED_IP=array('192 ...
- Webservice学习之——即时发布与定制发布
一.工具 myEclipse tomcat 6.0 以上版本 axis-bin-1_4.zip 二.即时发布 1.解压 axis-bin-1_4.zip 2.axis-bin-1_4.zip\axi ...
- Asp.net笔记(原创)
Repeater控件的使用:<asp:Label ID="Label1" runat="server" Text='<%#Eval("na ...
- Swift 学习手记1,pod 的 类库使用
问题: 在Swift中,我们无法使用像Objective-c 一样的 #import 例如 在头部输入 #import <ReactiveCocoa/ReactiveCocoa.h> 是不 ...
- MATLAB【工具箱下载】汇总
至于工具箱的安装说明参见:http://www.matlabsky.com/thread-120-1-1.html Maplesoft<Maple Toolbox for MATLAB> ...
- PHP CURL参数详解
curl用法:cookie及post 一.cookie用法 <?php $cookie_jar = tempnam('./tmp','cookie'); // login $c=curl_ini ...
- 第5章标准I/O库总结
1 fwide函数试图设置流的定向(流的定向决定了读写单字节还是多字节字符) int fwide(FILE *fp,int mode) 宽定向返回正值,字节定向返回负值,为定向返回0 已定向流不会改变 ...