手把手教你写灌水机器,全智能自己定,,想怎么灌就怎么灌~

慎重申明:
仅供学习研究之用,不可做不该做的事~~保留作者名义!!
这是我前些日子根据我学校的BBS写的灌水程序,现在帖到自己的BLOG请根据你要实验的BBS提交表单作相应改动.


22:42 2006-4-22
我们使用开源HttpClient,该开源项目用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
我在以前那个公司做单元测试程序测试SERVLET代码和做压力测试程序测试系统压力时就是使用的它,它比JAVA里本有的net功能强而且容易使用。
因此,在这里我们还是使用它。
一 配置HttpClient
请把附件ext.rar解压放入JRE的库路径,比如:C:/Program Files/Java/j2re1.4.2_02/lib/ext。道理不用我说,当然是使得我们的程序可以使用这个开源包。

占位帖代码~~

package bbs;
//引入开源包
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.NameValuePair;

public class BbsUp {
  public static void main(String[] args) {
    HttpClient httpClient = new HttpClient();
    String bbsNumberStr = args[0];//接收参数,以作为个人已经发帖子数
    int bbsNumberInt = Integer.parseInt(bbsNumberStr);//从字符转换为整型
    String loginUrl = "
http://bbs.ctbu.edu.cn/login.php";//登陆url
    String updateUrl = "
http://bbs.ctbu.edu.cn/post.php";//发帖url
    try{
        //登陆
        PostMethod postMethod=new PostMethod(loginUrl);
       
        NameValuePair[] data = { new NameValuePair("pwuser", "你的BBS账号,比如我的就是lenky,则这儿就写lenky"),
            new NameValuePair("pwpwd", "不用我说,当然是BBS账号密码"),
            new NameValuePair("hideid", "0"),
            new NameValuePair("jumpurl", "
http://bbs.ctbu.edu.cn/"),
            new NameValuePair("step", "2"),
            new NameValuePair("cktime", "31536000"),
        };
        postMethod.setRequestBody(data);

        int statusCode=httpClient.executeMethod(postMethod);
        System.out.println(statusCode);
       
        if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){
          Header locationHeader = postMethod.getResponseHeader("location");
          String location = null;
          if(locationHeader!=null){
            location = locationHeader.getValue();
            System.out.println("The page was redirected to:" + location);
          }else{
            System.err.println("Location field value is null.");
          }
          //return;
        }
        postMethod.releaseConnection();
       
        //回帖
        postMethod=new PostMethod(updateUrl);
        boolean b=true;
        while(b){//循环回帖
          NameValuePair[] data1 = {new NameValuePair("atc_title", "Re:....."),
                new NameValuePair("atc_content", "automatic reply program update! /n reply the topic every 40 second! /n number:" + (bbsNumberInt++) + " /n reply time:" + new java.util.Date()),
                new NameValuePair("step", "2"),
                new NameValuePair("action", "reply"),
                new NameValuePair("fid", "16"),
                new NameValuePair("tid", "127795"),
                new NameValuePair("editor", "0"),
                new NameValuePair("atc_attachment", "none"),
          };
          postMethod.setRequestBody(data1);
 
          int statusCode1=httpClient.executeMethod(postMethod);
          System.out.println(statusCode1);
         
          if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){
            Header locationHeader = postMethod.getResponseHeader("location");
            String location = null;
            if(locationHeader!=null){
                location = locationHeader.getValue();
                System.out.println("The page was redirected to:" + location);
            }else{
                System.err.println("Location field value is null.");
            }
            //return;
          }
          Thread.sleep(1000*40);//等待40秒
          System.out.println("number:" + bbsNumberInt);
         
        }
        postMethod.releaseConnection();
       
    }catch(Exception err){
        System.out.println(err.getMessage());
    }finally{
       
    }
  }
}

上面就是全部代码,简单吧?

NameValuePair[] data = { new NameValuePair("pwuser", "你的BBS账号,比如我的就是lenky,则这儿就写lenky"),
        new NameValuePair("pwpwd", "不用我说,当然是BBS账号密码"),
        new NameValuePair("hideid", "0"),
        new NameValuePair("jumpurl", "
http://bbs.ctbu.edu.cn/"),
        new NameValuePair("step", "2"),
        new NameValuePair("cktime", "31536000"),
    };

以上参数的来由请分析
http://bbs.ctbu.edu.cn/login.php的html的表单代码。

new NameValuePair("atc_title", "Re:....."),
                new NameValuePair("atc_content", "automatic reply program update! /n reply the topic every 40 second! /n number:" + (bbsNumberInt++) + " /n reply time:" + new java.util.Date()),
                new NameValuePair("step", "2"),
                new NameValuePair("action", "reply"),
                new NameValuePair("fid", "16"),
                new NameValuePair("tid", "127795"),
                new NameValuePair("editor", "0"),
                new NameValuePair("atc_attachment", "none"),

以上参数的来由:我对哪帖做自动回复就分析哪帖的页面
比如我就对本贴做自动回复程序就分析
http://bbs.ctbu.edu.cn/read.php?tid=127795
的表单代码。
分析多帖之后,你会发现一般只需改动fid(是指论坛ID,可能是forum id的简写)和tid(指帖子ID,可能是帖(tie id的简写)

智能改进
一方面,从回复内容着手,我们可以事先写好多条(比如150条)广泛适用的回复保存在文件(比如文本文件),开程序启动后把回复内容保存在数组(或其它比如map,list,set等).再在自动回复随机抽取一条进行回复.
另一方面,在程序里的new NameValuePair("fid", "16"),new NameValuePair("tid", "127795")值可以也取随机数(当然要研究下其规律,比如范围等),若是可以访问的页面(此时,状态码返回200),则随机回复一条信息.若是不可以访问的页面(此时,状态码返回比如404或其它或者页面里有提示信息比如页面里有"帖子ID非法"的提示等等),则再进行下次随机访问.

二.分析访问页面的内容,这就涉及比较深了,呵呵,
我原来也就只是分析下最上几楼的回复(比如楼主发帖的标题和内容,再就是前面几楼的回复),查找关键字,再进行简单的分析判断回复哪句比较好等.

原来我用C语言写过灌水程序,但是太麻烦了,后来代码也不知道哪儿去了.不过可以想象,比这麻烦多了.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特任务或者改进自身性能。机器学习的核心思是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值