整体分析思路

1、首先手工熟悉一遍业务流程

2、录制脚本,选取协议,设置录制选项

  1)Run-Time-Settings——Preferences——Options设置3个超时

2)Recording Options——Recording设置,选择HTML,web_url,web_submit_data

3、录制完成以后,优化一下脚本

1)将脚本里的函数都捋一遍,即函数对应的业务是什么,去掉无关的业务,保证脚本的简洁

2)做的事非整站的性能,可将EXTRARES里的脚本都删除掉

4、分析脚本

1)登陆

可将用户名参数化

2)发帖

a、将脚本回放,报错

     b、发帖时会产生一个动态变化值,formhash

     c、去网页源码里寻找formhash,在hidden域里找到formhash

<input type="hidden" name="mod" id="scbar_mod" value="search" />
<input type="hidden" name="formhash" value="b450c09e" />
<input type="hidden" name="srchtype" value="title" />
<input type="hidden" name="srhfid" value="2" id="dzsearchforumid" />
<input type="hidden" name="srhlocality" value="forum::post" />
<table cellspacing="0" cellpadding="0">

    d、将formhash做关联,因为关联函数是预注册函数,需放在默认版块之前

//发帖、回帖均需要关联formhash值
//<input type="hidden" name="formhash" value="b450c09e" />
web_reg_save_param("formhash",
"LB=name=\"formhash\" value=\"",
"RB=\" />",
LAST);

   3)回帖

  a、回帖时,tid是动态变化的值,需要做关联,(是对刚才新建的帖子进行回复,如不关联,如tid=4557,就会对编号是4557的帖子不断的回复)

meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>发帖发帖 - 默认版块 - Discuz! Board - Powered by Discuz!</title>
<link href="http://192.168.1.188/bbs/forum.php?mod=viewthread&tid=4587" rel="canonical" />
<meta name="keywords" content="发帖发帖" />
<meta name="description" content=" 发帖发帖 ,Discuz! Board" />

  b、将tid做关联,关联函数是预注册的,需要发在发帖之前

    //<link href="http://{ip}/bbs/forum.php?mod=viewthread&tid=4587" rel="canonical" />
//在对应的帖子下进行回复,需关联tid
web_reg_save_param("tidnum",
"LB=forum.php?mod=viewthread&tid=",
"RB=\" rel=\"",
LAST);

4、登陆——发帖——回帖(完整版)

Action()
{
//保存值函数
lr_save_string("192.168.1.188","ip"); //首页
web_url("forum.php",
"URL=http://{ip}/bbs/forum.php",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t24.inf",
"Mode=HTML",
LAST); //登陆
web_submit_data("member.php",
"Action=http://{ip}/bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1",
"Method=POST",
"TargetFrame=",
"RecContentType=text/xml",
"Referer=http://{ip}/bbs/forum.php",
"Snapshot=t25.inf",
"Mode=HTML",
ITEMDATA,
"Name=fastloginfield", "Value=username", ENDITEM,
"Name=username", "Value={uname}", ENDITEM,
"Name=password", "Value=123123", ENDITEM,
"Name=quickforward", "Value=yes", ENDITEM,
"Name=handlekey", "Value=ls", ENDITEM,
LAST); //<input type="hidden" name="formhash" value="b450c09e" />
//给发帖做关联
web_reg_save_param("formhash",
"LB=type=\"hidden\" name=\"formhash\" value=\"",
"RB=\" />",
LAST); //进入默认版块
web_url("默认版块",
"URL=http://{ip}/bbs/forum.php?mod=forumdisplay&fid=2",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=http://{ip}/bbs/forum.php",
"Snapshot=t27.inf",
"Mode=HTML",
LAST); //给回帖做关联
//http://192.168.1.188/bbs/forum.php?mod=viewthread&tid=4580" rel="canonical" />
web_reg_save_param("tidno",
"LB=forum.php?mod=viewthread&tid=",
"RB=\" rel=",
LAST); //发帖
web_submit_data("forum.php_4",
"Action=http://{ip}/bbs/forum.php?mod=post&action=newthread&fid=2&extra=&topicsubmit=yes",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://{ip}/bbs/forum.php?mod=post&action=newthread&fid=2&referer=http%3A//{ip}/bbs/forum.php%3Fmod%3Dforumdisplay%26fid%3D2",
"Snapshot=t29.inf",
"Mode=HTML",
ITEMDATA,
"Name=formhash", "Value={formhash}", ENDITEM, //formhash是动态值
"Name=posttime", "Value=1439821219", ENDITEM,
"Name=wysiwyg", "Value=1", ENDITEM,
"Name=subject", "Value=艰苦学习", ENDITEM,
"Name=message", "Value=成效卓越,加油", ENDITEM,
"Name=replycredit_extcredits", "Value=0", ENDITEM,
"Name=replycredit_times", "Value=1", ENDITEM,
"Name=replycredit_membertimes", "Value=1", ENDITEM,
"Name=replycredit_random", "Value=100", ENDITEM,
"Name=readperm", "Value=", ENDITEM,
"Name=price", "Value=", ENDITEM,
"Name=tags", "Value=", ENDITEM,
"Name=rushreplyfrom", "Value=", ENDITEM,
"Name=rushreplyto", "Value=", ENDITEM,
"Name=rewardfloor", "Value=", ENDITEM,
"Name=stopfloor", "Value=", ENDITEM,
"Name=save", "Value=", ENDITEM,
"Name=usesig", "Value=1", ENDITEM,
"Name=allownoticeauthor", "Value=1", ENDITEM,
LAST); //回帖
web_submit_data("forum.php_5",
"Action=http://{ip}/bbs/forum.php?mod=post&action=reply&fid=2&tid={tidno}&extra=&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1",
"Method=POST",
"TargetFrame=",
"RecContentType=text/xml",
"Referer=http://{ip}/bbs/forum.php?mod=viewthread&tid={tidnum}&extra=",
"Snapshot=t30.inf",
"Mode=HTML",
ITEMDATA,
"Name=message", "Value=过来顶贴了", ENDITEM,
"Name=posttime", "Value=1439821241", ENDITEM,
"Name=formhash", "Value={formhash}", ENDITEM,
"Name=subject", "Value=", ENDITEM,
LAST); return ;
}

BBS的登陆——发帖——回帖的更多相关文章

  1. 04 http协议模拟登陆发帖

    <?php require('./http.class.php'); $http = new Http('http://home.verycd.com/cp.php?ac=pm&op=s ...

  2. Discuz常见小问题-如何取消登陆发帖验证码

    1 正常情况下,用户点击登录之后,需要填写验证码 2 进入后台,点击防灌水,验证设置,然后下面的各个选项可以设置是否启用验证码.

  3. django开发的社区和博客

    社区 线上地址:http://codetheme.sinaapp.com/ Githubhttps://github.com/BeginMan/codetheme 由于利用两周下班时间熬夜做的,难免有 ...

  4. 百度贴吧自动回帖的两种方式,使用requests(urllib2)和selenium两种方式回帖

    本文介绍,回复贴吧指定某楼层主的帖子的方法.在这里不介绍无限发主贴和无限回复主贴的方法,无限发主题帖会爆吧,引起别人的反感,并且很容易遭到吧主的封杀:无限回主题帖,会让整个帖子的每楼的回复充满了自己的 ...

  5. 【中国人大:天地人大BBS站】迟到的求职感悟

    转自 http://i.cnblogs.com/EditPosts.aspx?opt=1 研究生最后一年,我参加了一个500强外企实习,单纯幼稚的小姑娘立马被白领工作的那种光鲜亮丽给迷惑了,同时听说可 ...

  6. 20145212 罗天晨 WEB登陆发贴及会话管理功能的实现

    会话管理简介 Cookie: cookie常用于识别用户. cookie 是服务器留在用户计算机中的小文件,每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie. 通过PHP能够创建并取回 ...

  7. 【Python】理想论坛每小时发帖量统计图表

    写以下代码的目的是分析一天中各时段理想论坛中用户发帖回帖的活跃程度,获得结尾那张图表是核心. 以下代码两种爬虫协助,论坛爬虫先爬主贴,爬到主贴后启动帖子爬虫爬子贴,然后把每个子贴的发表时间等存入数据库 ...

  8. 基于JSP的学术交流论坛系统的设计与实现

    版权声明:本文为[博主](https://zhangkn.github.io)原创文章.未经博主同意不得转载. https://creativecommons.org/licenses/by-nc-s ...

  9. [转]passport.js学习笔记

    概述 passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express.Sails等Web框架无缝集成.Passport功能单一,即只能做登录验证,但非常强大, ...

随机推荐

  1. u-boot的SPL源码流程分析

    上次梳理了一下SPL的基本概念和代码总体思路,这次就针对代码跑的流程做个梳理.SPL中,入口在u-boot-spl.lds中 ENTRY(_start) SECTIONS { .text : { __ ...

  2. Java异常机制简介

    什么是异常? 异常一般是指程序在编译期没有问题,但是在程序运行期出现的错误,一个程序会因为出现异常而终止运行,也就是我们常说的挂掉,在多线程下,异常只会影响所在的线程,对其他线程没有影响. Java异 ...

  3. if判断 -z -n 参数

    _echo_error() { echo -ne "\033[31;1m $1\033[0m\n";}_echo_ok() { echo -ne "\033[32;1m ...

  4. Dynamics 365 for CRM: Sitemap站点图的可视化编辑功能

    Dynamics 365 for CRM 提供了Sitemap站点图的可视化编辑功能 在之前的所有版本中,我们只能通过从系统中导出站点图的XML进行编辑后再导入(容易出错),或使用第三方的Sitema ...

  5. java基础笔记(3)----函数

    前言引入函数前,所有的代码都写在main主函数中,代码过多,代码冗余,可读性差. 引入函数后,函数是实现某一特定功能的代码块.一个类中可以定义多个函数,每个函数和main主函数都是并列关系. 函数: ...

  6. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  7. Semaphore 源码分析

    Semaphore 源码分析 1. 在阅读源码时做了大量的注释,并且做了一些测试分析源码内的执行流程,由于博客篇幅有限,并且代码阅读起来没有 IDE 方便,所以在 github 上提供JDK1.8 的 ...

  8. bash下常用快捷键

    Ctrl-A 相当于HOME键,用于将光标定位到本行最前面Ctrl-E 相当于End键,即将光标移动到本行末尾Ctrl-B 相当于左箭头键,用于将光标向左移动一格Ctrl-F 相当于右箭头键,用于将光 ...

  9. Maven+SSM框架搭建【spring+springmvc+mybatis】

    本案例用到:ssm[spring+springmvc+mybatis]框架 数据库:mysql (推荐使用mysql 或者 sqlserver  .oracle太大,一般大型项目才会用到) 开发工具: ...

  10. beta冲刺 用户使用调查报告

    测评结果 一.使用体验 数据加载响应很快,页面切换丝滑流畅. UI有点偏暗,有些字被覆盖了. 页面布局过于居中,两侧空白范围较大. 总体功能完善. 二.登录.注册.忘记密码界面 管理员登录按钮太靠下, ...