标题:[原创] Discuz 发贴机器人源码,补充在指定楼层发帖回复
内容:
#!/usr/bin/perl
use strict;
use warnings;
use LWP;
use HTTP::Cookies;
my $browser=LWP::UserAgent->new;
my $new_agent='Mozilla/5.0';
$browser->agent($new_agent);
#Proxy:如果你的IP封了,呵呵!
#$browser->proxy('http','your ip');
$browser->cookie_jar(HTTP::Cookies->new(
'file'=>'im286.lwp',
'autosave'=>1));
push @{$browser->requests_redirectable},"POST";
my $login_url='http://www.baidu.com/logging.php?action=login';
my $post_url='http://www.baidu.com/post.php?action=newthread&;fid=1&extra=page%3D1';
my $name='木JJ'; #落伍ID
my $passwd='123456'; #Password
#---------------> Login:
my $response=$browser->post($login_url,
[
formhash=>'6a49b97f',
loginmode=>'normal',
styleid=>'',
cookietime=>'3600',
username=>$name,
password=>$passwd,
questionid=>0,
loginsubmit=>'提 交',
]
);
die $response->message unless $response->is_success;
#-------------->Post:
$response=$browser->post($post_url,
[
formhash=>'9654580e',
readperm=>0,
typeid=>44,
subject=>'这里就是帖子的标题啦',
iconid=>0,
mode=>2,
message=>'这里就是帖子的内容啦,呵呵',
parseurloff=>0,
smileyoff=>0,
bbcodeoff=>0,
usesig=>1,
emailnotify=>0,
addoblog=>0,
topicsubmit=>'发新话题',
]
);
die $response->message unless $response->is_success;
print "Post: [OK]\n";
补充再指定楼层发帖代码
#------------->开始抢了:
my $louceng=80; #比如要抢80楼
my $next=$louceng-1; #关注80前一楼
my $key="\>\#$next\<"; #关键字
# :
# 如果你抢整数楼的话,比如(80楼),那么下面的那个页面就要跳到第7页,因为你要找到79层
# 如果是别的楼层的话,比如(86楼),直接到第8页就OK了!
my $page;
if (($louceng%10) eq 0) {
$page=($louceng/10)-1; }
else {
$page=int($louceng/10); }
#你关注的帖子
my $read_url="http://www.baidu.com/viewthread.php?tid=1622190&;extra=page%3D1&page=$page";
#一直循环,没找到不罢休. 呵呵!
while(1) {
$response=$browser->get($read_url);
die $response->message unless $response->is_success;
#如果找到了关键字
if($response->content=~ /$key/) {
# 提交你的帖子啦 ...
# 处理post那部分的信息..
# 当然需要改动少许 ..
# $post_url 改成回复的地址
last; #找到了就不跟它玩了, 跳出循环
}
}