您好,欢迎来到我的博客 [ 注册 | 登录| 管理 ]

腾讯微博互听查询客户端 | 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

跳到评论框添加评论

对“[转]建议腾讯收购金山软件”的评论:

speach bubble 评论

腾讯开放了平台,意味着这一客户端成为了摆设...

该评论由 林志宏 提交于2011-03-31 03:43:02

评论注意事项:

请记得写下您的名字,否则您的评论有可能被删除.

您的联系方式



评论

增大评论框

评论预览

提交于

重新生成验证图片