▲第三部分,软件脚本步骤说明▲:
如下图所示,这个是登陆的动作,有点多。没有办法,因为有验证码,就必须要折腾一下的了。
先打开登陆网址,然后GET一下验证码地址,有一些人问我怎么样同步验证码进行GET得到验证码图片,如下图就可以实现了呢。一定要[浏览器COOKIE]和这个同步,不然GET出来的验证码是完全不对的。
很多人以为POST可以绕开验证码,而且一直是那样认为是很高深的学问,其实不然,POST只是快,没有其它优势,如果说他能避开验证码,那要看提交的包,是否是和验证码结果放在一起,一般没有几个网站技术会这么蠢把验证码分开提交的吧。
因为有验证码,我所以我们这里提交要做出一个判断,看他这个提交的网址,似乎经常变动,所以这里判断尾部,好让软件知道有没有登陆老大您的账号。
第九步到第21步都是发帖动作,都是很标准的写法,似乎没有说的,
只是这个上传图片有点难度的,必须要下拉到底部,然后再上传,不然会定位上传失败的。
上菜,把软件源码放在这里调用。
<% keyID=清空浏览器缓存35042
{清空浏览器缓存}
<模式>稳定模式</模式>
<备注>稳定模式</备注>{/清空浏览器缓存}
%>
<% keyID=打开网址5450930
{打开网址}
<URL>http://my.sg560.com/</URL>
<超时>20</超时>
<备注>刷新网页</备注>
{/打开网址}
%>
<% keyID=倒计时-61226
{倒计时}<秒>5</秒><备注>倒计时5秒</备注>{/倒计时}
%>
<% keyID=POST动作-6598
{GET}
<网址>http://my.sg560.com/CheckCode.aspx?0.053179104605866945</网址>
<COOKIE>[浏览器COOKIE]</COOKIE>
<HTTP头>自动</HTTP头>
<数据解码>图片</数据解码>
<存入变量>OST图片</存入变量>
<备注>OST动作-6598</备注>
{/GET}
%>
<% keyID=验证码识别-1319
{验证码识别}
<验证码来源>[POST图片]</验证码来源>
<验证码类型>纯汉字</验证码类型>
{/验证码识别}
%>
<% keyID=POST动作-1679
{POST}
<网址>http://my.sg560.com/handler/login.ashx</网址>
<COOKIE>[浏览器COOKIE]</COOKIE>
<HTTP头>自动</HTTP头>
<OST数据>rLogName={获取列表值}账号列表|账号|自动{/获取列表值}
&rPwd={获取列表值}账号列表|密码|自动{/获取列表值}
&VAJADATA=[URLUTF8编码][验证码识别结果][/URLUTF8编码]</POST数据>
<数据解码>UTF-8</数据解码>
<存入变量>OST返回数据</存入变量>
<备注>登陆</备注>
{/POST}
%>
<% keyID=逻辑判断-4710
{如果}<逻辑>[POST返回数据]<不包含>.html","status":"y"</逻辑><否则跳转到结束>keyid=20262</否则跳转到结束><备注>判断登陆成功了没有</备注>
{/如果}
%>
<% keyID=账号列表79805
{切换列表}
<列表集合>
账号列表|否|下一行|0|
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转18288
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=POST动作-6598</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>
<% keyID=20262
{否则}{/否则}
%>
<% keyID=20262else
{逻辑结束}{/逻辑结束}
%>
<% keyID=打开网址54509
{打开网址}
<URL>http://my.sg560.com/</URL>
<超时>20</超时>
<备注>刷新网页</备注>
{/打开网址}
%>
<% keyID=倒计时-74560
{倒计时}<秒>3</秒><备注>倒计时3秒</备注>{/倒计时}
%>
<% keyID=打开网址35387
{打开网址}
<URL>http://my.sg560.com/member/Produ ... 35.html</URL>
<超时>20</超时>
{/打开网址}
%>
<% keyID=输入64655
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>txtcptitle</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题总内容|标题|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>标题</备注>
{/输入}
%>
<% keyID=输入40359
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>pKeyword1TB</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}关键字|a|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>关键字</备注>
{/输入}
%>
<% keyID=关键字27943
{切换列表}
<列表集合>
关键字|否|下一行|0|
</列表集合>
{/切换列表}
%>
<% keyID=输入95457
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>pKeyword2TB</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}关键字|a|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>关键字2</备注>
{/输入}
%>
<% keyID=关键字2794359
{切换列表}
<列表集合>
关键字|否|下一行|0|
</列表集合>
{/切换列表}
%>
<% keyID=输入41745
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>pKeyword3TB</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}关键字|a|自动{/获取列表值}</输入值>
<输入类型>value</输入类型>
<限制字数>0</限制字数>
<备注>关键字3</备注>
{/输入}
%>
<% keyID=输入79425
{输入}
<框架定位类型>序号</框架定位类型>
<框架定位值>2</框架定位值>
<定位类型>XPATH</定位类型>
<定位值>/html/BODY</定位值>
<元素序号>0</元素序号>
<输入值>{获取列表值}总标题总内容|内容|自动{/获取列表值}</输入值>
<输入类型>innerHTML</输入类型>
<限制字数>0</限制字数>
<备注>内容</备注>
{/输入}
%>
<% keyID=滚动条定位30209
{滚动条定位}
<滚动条定位类型>滚动到底部</滚动条定位类型>
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>XPATH</定位类型>
<定位值>//*[@id="form1"]/DIV[3]/DIV[2]/DIV[2]/DIV[3]/TABLE/TBODY/TR[8]/TD</定位值>
<元素序号>0</元素序号>
<固定像素>200</固定像素>
<备注>滚动到底部</备注>
{/滚动条定位}
%>
<% keyID=倒计时-22357
{倒计时}<秒>2</秒><备注>倒计时2秒</备注>{/倒计时}
%>
<% keyID=上传文件46809
{上传文件}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>坐标</定位类型>
<定位值>{X=445,Y=188}{SX=0,SY=0}</定位值>
<元素序号>0</元素序号>
<点击方式>模拟鼠标</点击方式>
<文件路径>{获取列表值}上传图片|1|自动{/获取列表值}</文件路径>
<备注>上传图片</备注>
{/上传文件}
%>
<% keyID=点击62210
{点击}
<框架定位类型>序号</框架定位类型>
<框架定位值></框架定位值>
<定位类型>ID</定位类型>
<定位值>pReleaseButton</定位值>
<元素序号>0</元素序号>
<点击方式>元素点击</点击方式>
<等待新窗体>False</等待新窗体>
<允许新窗口>False</允许新窗口>
<备注>发布</备注>
{/点击}
%>
<% keyID=倒计时-94879
{倒计时}<秒>10</秒><备注>倒计时10秒</备注>{/倒计时}
%>
<% keyID=请选择要切换的列表32971
{切换列表}
<列表集合>
标题1|否
总标题总内容|否
上传图片|否
标题2|否
内容2|否
关键字|否
变量1|否
变量2|否
变量3|否
变量4|否
内容1|否
标题3|否
内容3|否
内容4|否
</列表集合>
{/切换列表}
%>
<% keyID=动作跳转73005
{动作跳转}
<当>直接跳转</当>
<条件>包含</条件>
<值></值>
<跳转到>keyid=打开网址35387</跳转到>
<跳转频率>0</跳转频率>
{/动作跳转}
%>
总结起来,就是这个登陆用YYPOST有多种做法,一个是抓包,像这个脚本一样, 一个是用JS输入验证码,这里只介绍了一种POST登陆,省时省力的做法是最好不过的吧,老网站收录高的网站,越不会有太多的调难,可见,网站主也知道,再多的乱发,还不如真实体验来的效果好一些呢,人家收录高不是没有付出的哈。