2007年5月21日星期一

我自己做的自动发贴机器人

use Encode;use HTTP::Cookies;use LWP;$ua = LWP::UserAgent->new;$ua->agent("Mozilla/8.0");#初始化参数$n_file='D:\bin\posttools\自动发帖\bt区顶贴\bt2.cnxp.com影视帝国\\';###临时种子文件地址#定义地址@url @postid @bankuainame$hhttp='http://bt2.cnxp.com';$url[0]='http://bt2.cnxp.com/Class2.html';$postid[0]='8';$bankuainame[0]="$hhttp-电影";
$url[1]='http://bt2.cnxp.com/Class3.html'; $postid[1]='8';$bankuainame[1]="$hhttp-动漫";
while (1) { for ($u=0;$u<=$#url;$u++){ $htms=''; $res = $ua->get($url[$u]); $htms=$res->content; print "获取 $bankuainame[$u] 版块数据 \n"; #获取后挑出有用的数据 if ($res->is_success) { Encode::from_to($htms, "utf-8", "gb2312"); #$htms=encode("utf-8",$htms); @html=(); @html=split(/\n/,$htms); @link=(); @tid=(); @tti=(); for(@html){ #[02.26][美国喜剧犯罪][脱衣舞娘][DVD-RMVB][中文字幕] #(.*?)<\/a> if (m{(.*?)<\/a>}i){ push(@tid,$1); push(@tti,$2); } } } print "挑出有用的数据 $#tid 个 \n"; #历史记录 open (FILE,$n_file.'data\history.log'); @history=(); @history=; close FILE; #用户记录 open(FILE,$n_file.'data\user.txt'); @usertxt=(); @usertxt=; close FILE; #提交记录 print "读取用户信息 \n"; #检查帖子是否在历史,不在就发帖 $chazhao=0;#是否找到0没找到 for ($x=0;$x<=$#tid;$x++){ for ($a=0;$a<=$#history;$a++){ if ($history[$a]==$tid[$x]){ $a=$#history+1; $chazhao=1; } } print "帖子$tti[$x] $tid[$x] 找到标志为 $chazhao\n"; if ($chazhao==0){ #如果历史没有就发帖 #获取源帖子内容 $url="$hhttp/detail$tid[$x].html"; $res = $ua->get($url); $htmls=$res->content; Encode::from_to($htmls, "utf-8", "gb2312"); #open (FILE,'>D:\bin\posttools\自动发帖\bt区顶贴\bbs.btpig.com猪猪乐园\bin\temp.log'); #debug #print FILE $htmls; #debug #close FILE; #debug @html=(); @html=split(/\n/,$htmls); @torlink=(); @tortid=(); @torxylink=(); @tortti=(); $zd=0; #获取所有种子地址 for(@html){ #种子下载 # if (m{}){ push(@torlink,"$1"); $zd=1; } } #找到种子文件才发帖,否则不发帖 if ($zd==1){ $userc=int(rand($#usertxt));#选择哪个用户 chomp($usertxt[$userc]); ($user,$pass)=split(/,/,$usertxt[$userc]); print "决定用户$userc发帖子\n"; #获取种子 @torxylink=(); print "种子获取成功,开始上传种子\n"; #sleep 3; } #拆分源帖子 $zzdaot=0; $zzdaow=0; for ($s=0;$s<=$#html;$s++){ #找帖子头部 if ($zzdaot==0){ if ($html[$s]=~m/ if ($html[$s]=~m/