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.循环的五大要素 循环变量 ...
随机推荐
- ionic(一) build你的第一个android apk
1.ionic start myApp tabs >>创建一个app 2.cd myApp >>进入myApp文件 3.ionic platform add andro ...
- JavaScript高级程序设计(一):JavaScript简介
一.JavaScript实现 1.一个完整的JavaScript包含三个部分组成: 1)ECMAScript 核心 2)DOM文档对象模型 3)BOM浏览器对象模型 2.文档对象模型(DOM) 文档对 ...
- Ext.Net学习笔记10:Ext.Net ComboBox用法
ComboBox是最常用的控件之一,它与HTML中的Select控件很像,但可以进行多选.自定义显示格式.分页等. ComboBox用法 <ext:ComboBox runat="se ...
- Xcode中需要熟悉的常用快捷键
因为工作需要,笔者最近开始接触Xcode这款Mac系统下的强大的编程软件.因为个人习惯,每当接触新的软件的时候总会先去了解它的一些常用快捷键.经过多方查阅总结出以下内容,希望对刚刚接触Xcode的初学 ...
- OC与Swift的区别二(常量、变量、运算符)
4.常量与变量声明 oc的变量声明使用 类型 变量名 = 变量值的方式,其中类型为系统内置数据类型或自定义类型,变量名需由英文字母开头且不能包含特殊字符 swift变量声明使用 var 变量名 = ...
- java新手笔记13 继承
1.Person类 package com.yfs.javase; //可以有多个子类 public class Person { private String name;// 私有属性不能继承 pr ...
- java 利用注解实现BaseDao 增删查改
第一步,编写两个注解类,用于表明实体类对应的表名及字段. TableInfo.java 此注解用于标注表名及主键名 import static java.lang.annotation.Element ...
- Ubuntu不卸载ibus前提下安装搜狗输入法
第一步 在命令行中输入以下行命令安装fictx框架 sudo apt-get install fcitx fcitx-config-gtk im-switch 第二步 去 http://pinyin. ...
- Linux网络
netstat 查看网络状态 netstat: -r :显示路由表 -n: 以数字方式显示 -u: 显示UDP连接 -t :显示TCP连接 -l:显示监听状态的连接 -p: 显示监听指定套接字的进程的 ...
- 用开源软件构建App的高效服务端
1.APP后端的重要性 2.架构目标与选型 3.Apache/Nginx? 4.为何选择Php 5.4? 5.Phalcon还是其它? 6.MySql 5.6 / MariaDB ? 7.Cobar: ...