<% keyID=POST动作-9912
{POST}
<COOKIE>自动</COOKIE>
<HTTP头>自动</HTTP头>
<OST数据>gt=[gt]&challenge=[challenge]&secretkey=[文本框:验证码钥]&referer=https://account.m.autohome.com.cn/login?pvareaid=&wtype=geetest</POST数据> <数据解码>UTF-8</数据解码>
<存入变量>OST返回数据</存入变量> <备注>识别验证码极验</备注>
{/POST}
%>
这样就能把验证码识别出来,识别一般会返回这样的数据:
{"msg":"识别成功","data":{"challenge":"e3a18832967bb7469158d4ce88eafba7","type":"三代点选","validate":"d51a69a2f3c3ddb5ea7e43df2a0ee313"},"spend":6211,"status":0}
他会提示是哪一种验证码,并且会提示识别成功,这里的二个参数是有用的"challenge":"e3a18832967bb7469158d4ce88eafba7",和."validate":"d51a69a2f3c3ddb5ea7e43df2a0ee313"这二个参数就是识别的验证码结果了。
我们再利用万能采集功能,把验证码采集保存为[challenge]和[validate]这二个变量名称
万能采集:
采集(1条)存入变量:
[challenge]=e3a18832967bb7469158d4ce88eafba7
采集(1条)存入变量:
[validate]=d51a69a2f3c3ddb5ea7e43df2a0ee313
再利用POST把这个登陆写上去。
需要注意的是:
name=[URLUTF8编码]{获取列表值}账号列表|账号|自动{/获取列表值}[/URLUTF8编码]
这个是登陆的账号名称,如果是中文名称多需要UTF8编码
&pwd=[MD5编码]{获取列表值}账号列表|密码|自动{/获取列表值}[/MD5编码]
这个是登陆的密码加密,软件有的MD5加密的方法进行加密的。
&validcode=
&isauto=true
&type=json
&backurl=https%25253A%25252F%25252Fwww.autohome.com.cn%25252Fheyuan%25252F
&url=
&fPosition=10001
&sPosition=1000100
&platform=1
&popWindow=0
&geetest_challenge=[challenge]
这个是识别结果的一处参数
&geetest_seccode=[validate]%7Cjordan
&geetest_validate=[validate]
这二个也是识别结果的参数,只是有一个有一个后缀不要忘了加上%7Cjordan
如果没有这个参数,登陆是不成功的。
登陆不成功有很多提示,有的是账号封了,有的是账号需要手机验证码,有的是账号需要改名,有的是账号太长没有登陆需要改密码等等问题,所以我这里只弄了一种方式,就是登陆成功才不切换账号,登陆成功会有这样的提示,这个大概就是说各种写入缓存的意思,登陆成功后,返回这些代码:
{"message":"","cache":"0","success":"1","body":{"message":"登录成功!","userstatus":0,"auUrl":"//account.che168.com/login/OtherLoginTemp?other=3d850cgfe-dd1c-45e3-a5fb-172f8a59527b\u0026pc=ffa34bb94e7gc44fcbgc8755fb147b3dc20189819d","success":"1","clubUserShow":"25788829|588|16|%e6%88%91%e5%8f%ab%e9%98%bf%e8%89%b3|0|0|0||2019-09-11 21:08:10|0","ssoAutohomeUrl":"https://sso.autohome.com.cn/home/SyncLoginCookie?loginType=m\u0026ticket=1603c782b291g40b6a6133aed248f6f89","loginUrlJiaJiaBX":"//account.jiajiabaoxian.com.cn/login/OtherLoginTemp?other=b3a568e2-7fa5-4f77-8eaa-ega7fcc362ada\u0026pc=ffa34bb94e7c44fcbc8755fb147b3dc20189819d","ssoChe168Url":"https://sso.che168.com/home/SyncLoginCookie?loginType=m\u0026ticket=5d8d55753g6a54f0ead5fdadc7f553166"}}
这个逻辑判断是说,登陆成功后,各个返因来的网址访问一次,否则就重新换号,重新登陆,重新换IP,重新再次登陆上去。
我们用了,方便截取的方式,存入变量,把论坛的缓存访问一次,就可以让网页登陆成功。
<% keyID=字符截取-95161
{字符截取}
<要截取字符串>[URLJOSN解码][POST返回数据][/URLJOSN解码]</要截取字符串>
<前字符>ssoAutohomeUrl":"</前字符>
<后字符>"</后字符>
<存入变量>变量</存入变量>
<备注>获取登录地址</备注>
{/字符截取}
%>
再加一个访问变量,就可以登陆成功账号了。
这个第九步和第10步的作用是他网站登陆成功后,会跳转一次,所以有二个访问顶帖的网址,这样就可以固定在一个网站上,再输入密码登陆就得了。
这个网站也算是拖动验证码的一个例子吧,以后遇到类似这样的事验证码,都可以用这种方法去登陆。