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 循环 回到循环顶端的更多相关文章

  1. python 循环、循环设计、循环对象

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 1.循环 循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进 ...

  2. (十一)if...else&for循环&while循环

    ----------------------------------if else------------------------------1.最基本的if语句:if name =="Al ...

  3. Python基础之if判断,while循环,循环嵌套

    if判断 判断的定义 如果条件满足,就做一件事:条件不满足,就做另一件事: 判断语句又被称为分支语句,有判断,才有分支: if判断语句基本语法 if语句格式: if 判断的条件: 条件成立后做的事 . ...

  4. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  5. php之快速入门学习-13(PHP 循环 - While 循环)

    PHP 循环 - While 循环 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块. PHP 循环 在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行.我们可以在代码中使用循 ...

  6. Python流程控制-while循环-for循环

    写重复代码 是可耻的行为 -------------- 完美的分割线  -------------- 摘录自:http://www.runoob.com/python/python-loops.htm ...

  7. 『Python基础-7』for循环 & while循环

    『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...

  8. 流程控制之while循环for循环

    流程控制之while循环1.什么是循环 循环就是重复做某件事2.为什么要有循环 为了让计算机能够具备人重复做某件事的能力3.如何用循环 while语法: while 条件: code1 code2 c ...

  9. js循环(while循环,do while循环,for循环)相关知识点及练习

    08.循环 1.循环! 循环的作用: 简化代码,处理重复执行的代码 遍历数组.json对象.节点集合 2.while循环 语法: while(循环的条件){ 循环体 } 3.循环的五大要素 循环变量 ...

随机推荐

  1. Visual Basic|VB 6.0中文版

    附加下载链接:http://xiazai.zol.com.cn/detail/3/29939.shtml?&437886-tsina-1-838-a507c04d8e448a55dd65bfc ...

  2. MFC对话框程序EDIT类控件的自动换行,垂直滚动条自动下移

    1.新建一个Edit Control,将其Multiline属性设置为True,Auto HScroll属性设置False,这样就可以实现每一行填满后自动换行了.   2.再将Vetrical Scr ...

  3. Android开发MVP模式解析

    http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html 在开发Android应用时,相信很多同学遇到和我一样的情况,虽然 ...

  4. bootstrap paginator 与 bootstrap3兼容

    bootstrap paginator可支持bootstrap2 和bootstrap3. 默认的下载包中支持2,需要手动修改才能支持bootstrap3.具体方法:找到bootstrap-pagin ...

  5. 初学c++

    今天在计蒜客中学习了c++的语句编写方法.因为之前编程时候用的都是c,所以第一次看到c++的部分代码还是有点迷茫忙的. 初次接触c++,我学习到了c++中变量的定义以及输入输出. 代码如下: #inc ...

  6. 九度OJ 1124 Digital Roots -- 数位拆解

    题目地址:http://ac.jobdu.com/problem.php?pid=1124 题目描述: The digital root of a positive integer is found ...

  7. 快速排序 javascript实现

    Quicksort(快速排序) 是由 东尼·霍尔 所发展的一种排序. 它比其他的Ο(n log n)算法更快, 因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来.当然, ...

  8. 高性能、高并发TCP服务器(多线程调用libevent)

    from:http://blog.csdn.net/i_am_jojo/article/details/7587838 本文讲述的TCP服务器是模仿memcache中的TCP网络处理框架,其中是基于l ...

  9. c# 实现文件批量压缩

    今天改一个网站的功能,网站提供一些微信的素材,每个页面对应一套素材,如果会员一张一张下载,那么网站交互性就有点太差了.所以修改的内容就是提供一个按钮,点击按钮将这套图片和网站信息进行打包下载. 思路: ...

  10. 迷你版 smarty --模板引擎和解析

    http://blog.ipodmp.com/archives/php-write-a-mini-smarty-template-engine/ 迷你版Smarty模板引擎目录结构如下: ① 要开发一 ...