腾讯微博互听查询客户端 | 2010年10月11日
想知道你收听的人有没有在收听你吗,这是我写的一个客户端,还是那句话,我开放源代码,如果你不放心我编译的执行文件,可以自己下载源码编译

对版本进行了更新,可以实时显示查询过程,而不是一直等待
下载地址:腾讯微博互听查询客户端v1.1
#!perl
use strict;
use LWP;
use Tk;
use HTTP::Cookies;
use HTTP::Request::Common;
use URI;
use Encode;
use Digest::MD5 qw(md5 md5_hex);
use Data::Dumper;
my $mw; # 主窗口
$mw = MainWindow->new;
my $f; # 框架,用于顶部操作项目的步局
$f = $mw->Frame->pack(-side => 'top', -fill => 'x');
my $fileLabel; # 打开文件提示
$fileLabel = $f->Label(-text => decode("utf8", "请输入您的微博用户名"))
->pack(-side => 'left');
# 邮箱 地址文件框
my $fileEntry;
my $name;
$fileEntry = $f->Entry(-textvariable => $name)->pack(-side => 'left');
# 第二个框架
my $f2;
$f2 = $mw->Frame->pack(-side => 'top', -fill => 'x');
my $rptid; # 重复执行操作repeat的ID
my $info = decode("utf8", "查询状态");
$mw->Label(-textvariable => $info, -background => 'green')
->pack(-side => 'bottom', -fill => 'x');
my $t;
$t = $mw->Scrolled("Text",-scrollbars => 'e')->pack(-side => 'bottom',
-fill => 'both', -expand => 1);
$f2->Label(-text => decode("utf8", "请输入您的微博密码:"))
->pack(-side => 'left');
my $areaEntry;
my $pass;
$areaEntry = $f2->Entry(-textvariable => $pass, -show => '*')->pack(-side => 'left');
my $goBtn;
$goBtn = $f2->Button(-text => decode("utf8", "开始查询"), -command=>&begin_search)
->pack(-side => 'left');
my $lastView = 0;
MainLoop;
sub begin_search {
my $ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new(file=>'./lwp-cookies-qq', autosave=>1));
&qqLogin($ua);
my \\\%following;
my $url = 'http://t.qq.com/' . $name . '/following';
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
my $content = $response->content;
my @following;
$content =~ /(d+)</a><a href="/.{0,20}/following?p=2" class="pageBtn">/;
my $fingpage = $1;
my $url = 'http://t.qq.com/' . $name . '/follower';
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
my $content = $response->content;
my @following;
$content =~ /(d+)</a><a href="/.{0,20}/follower?p=2" class="pageBtn">/;
my $ferpage = $1;
foreach(1..$fingpage) {
my $url = 'http://t.qq.com/' . $name . '/following?p=' . $_;
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
my $content = $response->content;
my @following;
@following = $content =~ /<div class="userPic">.*(@(.*?)).*?</div>/g;
foreach(@following) {
$following{$_} = 1
}
}
my ($key, $value);
foreach(1..$ferpage) {
my $url = 'http://t.qq.com/' . $name . '/follower?p=' . $_;
my $request = HTTP::Request->new(GET => $url);
my $response = $ua->request($request);
my $content = $response->content;
my @follower;
@follower = $content =~ /<div class="userPic">.*(@(.*?)).*?</div>/g;
foreach(@follower) {
if($following{$_} == 1) {
$following{$_} = 2
}
}
}
while ( ($key, $value) = each \\\%following ) {
if ($value == 1) {
$t->insert("end", $key . "
");
#print "$key
";
}
}
}
sub qqLogin {
my $uaRef = shift;
my $verifyURL = 'http://ptlogin2.qq.com/check?uin=@' . $name . '&appid=46000101';
my $request = HTTP::Request->new(GET => $verifyURL);
my $response = $$uaRef->request($request);
my $content = $response->content;
my $verifyCode = substr($content, 18, 4);
my $pwd = uc md5_hex(md5(md5($pass)));
my $loginUrl = 'http://ptlogin2.qq.com/login?' . 'u=@' . $name . '&p='.md5_hex($pwd.$verifyCode).'&verifycode='.$verifyCode.'&aid=46000101&u1=http\\\%3A\\\%2F\\\%2Ft.qq.com&h=1&from_ui=1&fp=loginerroralert';
my $request = HTTP::Request->new(GET => $loginUrl);
my $response = $$uaRef->request($request);
}
该日记提交于14:46:25





跳到评论框添加评论
对“[转]建议腾讯收购金山软件”的评论:
腾讯开放了平台,意味着这一客户端成为了摆设...