autodataming的个人博客分享 http://blog.sciencenet.cn/u/autodataming

博文

perl的LWP 和linux 的crontab每天自动到小木虫上取金币

已有 4356 次阅读 2013-11-7 09:22 |个人分类:奇技淫巧|系统分类:科研笔记| Perl, 自动, LWP, 领金币

背景:论坛为了吸引人气,会推出虚拟金币活动,每天登陆可以领取金币,而金币又可以用来获得一些资料。

所以我就写了一个自动领取金币的小机器人。

 

方法介绍:

我不知道目前的浏览器是否可以调用里面的函数,

所以我自己创建了一个虚拟浏览器,这个浏览器必须自带cookie的功能

然后构建了一个请求,这个请求包含用户名,密码,以及click的动作,

最后通过浏览器向服务器发送请求,并接受服务器的返回的信息

然后就取领金币了,领完金币,记录下时间,以及当前金币的数量

crontab -e  #编写定时任务,每天2点2分执行这个任务

2 2 * * * /home/xx/emuch.pl >>/home/xx/log

=============================================================================

#!/usr/bin/perl -w
use strict;

#配合linux 的crontab,每天自动领取金币

 

use LWP;

use HTTP::Request::Common qw( POST );

 

my $browser=LWP::UserAgent->new( cookie_jar=>{}); #非常重要

$browser->agent("MyApp/0.1 ");

my $username='Z';

my $password='c';


my $req = POST('http://emuch.net/bbs/logging.php?action=login&t=1383722643', [
   username => $username,
   password => $password,
  loginsubmit=>"Sky"  

]);
     
my $res = $browser->request($req);


#print $res->code;
 
#http://emuch.net/bbs/memcp.php?action=getcredit
#creditsubmit ?????? 37
#formhash bede779d 17

my $request=POST('http://emuch.net/bbs/memcp.php?action=getcredit',
               [
             
               getmode=>'1',formhash=>'bede779d']);
my $response = $browser->request($request);


my @text=split(/\n/,$response->content);
system("date");

foreach my $line(@text)
{
     if($line=~/金币: (\d+)/)
     {
           print $1,"n";
           last;
     }
}


 

 

 

 

 



https://blog.sciencenet.cn/blog-950202-739718.html

上一篇:化合物在国内可否买到的
下一篇:maestro中小分子手性识别的问题
收藏 IP: 202.127.19.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-23 02:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部