找回密码
 加入
搜索
查看: 9385|回复: 15

[IE类操作] 高手帮我看一下, SOHU 的POST ,批量检测账号是否存在!

  [复制链接]
发表于 2010-10-13 20:17:45 | 显示全部楼层 |阅读模式
本帖最后由 qq123123 于 2010-10-20 04:59 编辑

首先说明一点,我自己有努力看了一天的帮助了,一个一个的看完了,自己也做了一个,修改了一下,但是也不行,只有求助各位!
所有的钱求购一个 SOHU 的POST ,批量检测账号是否存在
只要求判断这个账号是否存在,就行了, 是不需要注册出来的  (批量)


https://passport.sohu.com/web/di ... port&appid=8888
在线等待
POST数据



GET /jsonajax/checkusername.action?shortname=asdf12323&domain=sohu.com&appid=1000&_t=1167907764531&mobileReg=false HTTP/1.1
Accept: text/javascript, text/html, application/xml, text/xml, */*
Accept-Language: zh-cn
x-prototype-version: 1.6.0
Referer: https://passport.sohu.com/web/di ... /signup_success.jsp
x-requested-with: XMLHttpRequest
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: passport.sohu.com
Connection: Keep-Alive
Cookie: IPLOC=CN4690; SUV=1010131719140292; PPUV=1167902388062885; JSESSIONID=abcdwRoWnRgkHeNC3mLUs
发表于 2010-10-13 22:20:58 | 显示全部楼层
本帖最后由 republican 于 2010-10-13 22:24 编辑

这个应该没什么难度的吧,根本不需要Cookies;
如果满意的话,钱还是给有需要的人吧~
需要用到的UDF,传送门:http://www.autoitx.com/thread-18528-1-1.html
#include <WinHttp_GetRespond.au3>

$MyOpen=_WinHttpOpen()        

$Test = InputBox("请输入用户名","请输入用户民")
$rContext=_WinHTTP_GetRespond($MyOpen,"https://passport.sohu.com/jsonajax/checkusername.action?shortname="&$Test&"&domain=sohu.com&appid=8888&_t=1286978861640&mobileReg=false",0,2)

If Not @error Then 
        Switch StringRegExpReplace(BinaryToString($rContext[0]),'.*"status":"(\d+)".*','$1')
                Case 0
                        MsgBox(64,"恭喜","该用户名并未被使用~")
                Case 1
                        MsgBox(48,"抱歉","该用户名已经被使用!")
        EndSwitch
EndIf
_WinHttpCloseHandle($MyOpen)


打包下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

 楼主| 发表于 2010-10-14 01:37:56 | 显示全部楼层
本帖最后由 qq123123 于 2010-10-14 01:54 编辑

回复 2# republican

首先谢谢你的回复,但是还是有问题的  
运行 EXE以后,没有反应!并且发现用工具查看,
发现地址会变!

然后AU3 运行,又提示错误, WinHttp_GetRespond.au3  利用传送门,他说变量没有定义!麻烦请发完整的代码,让我学习一下,谢谢
D:\autoit3\Include\WinHttp_GetRespond.au3 (1) : ==> ?????.:
?:
^ ERROR

$MyOpen,"https://passport.sohu.com/jsonajax/checkusername.action?shortname="&$Test&"&domain=sohu.com&appid=8888&_t=1286978861640&mobileReg=false",0,2)

上面是你写的,但是我一查,发现地址又变了

https://passport.sohu.com/jsonaj ... amp;mobileReg=false
 楼主| 发表于 2010-10-14 01:56:13 | 显示全部楼层
本帖最后由 qq123123 于 2010-10-20 05:00 编辑

我测试下!
发表于 2010-10-14 08:10:49 | 显示全部楼层
是_WinHTTP_GetRespond,要么你就修改UDF.

地址变不变不影响的,把延时调高点就好了。
 楼主| 发表于 2010-10-14 12:24:39 | 显示全部楼层
回复 5# republican
延时调高点?

能给个列子,或者完整一点的代码,小弟新人,看起来挺辛苦!
发表于 2010-10-14 20:37:05 | 显示全部楼层
回复 6# qq123123

我给你的就是完整的代码了。

 _WinHTTP_GetRespond($hRequest, $ConnectURL [, $SendMode[,$ReturnMode[,$hTimeOut[,$NORedirect[,$Context[,$Cookies[,$MoreHeader[,$FuncName[,$ParamArray]]]]]]])
                        
;~                 $hTimeOut    -        超时     (正整数)


注意到timeout没有?这个就是超时设置。

即:
$rContext=_WinHTTP_GetRespond($MyOpen,"https://passport.sohu.com/jsonajax/checkusername.action?shortname="&$Test&"&domain=sohu.com&appid=8888&_t=1286978861640&mobileReg=false",0,2,55000)
延时55秒。
发表于 2010-10-14 20:38:54 | 显示全部楼层
本帖最后由 republican 于 2010-10-14 20:40 编辑

发重复了....

延时啊....
发表于 2010-10-14 20:42:40 | 显示全部楼层
呵呵,学习一下。。
 楼主| 发表于 2010-10-15 19:02:00 | 显示全部楼层
回复 7# republican


你用的是什么版本的 AU3

我的版本找不到    _WinHttpOpen()   这个函数
发表于 2010-10-15 20:19:02 | 显示全部楼层
。。。。
2楼都给你传送门了   下一个别人写好的函数就可以了
PS 多看看基础教程吧
发表于 2010-10-15 22:22:09 | 显示全部楼层
来学习一下,感谢2楼
 楼主| 发表于 2010-10-20 04:18:33 | 显示全部楼层
还是要感谢一下2楼,不过问题确实没有解决,不知道是不是版本的问题!
 楼主| 发表于 2010-10-20 05:01:22 | 显示全部楼层
回复 2# republican


  难道是我用IE6 的问题,https://

我连你的 EXE文件都没办法用,打开了,没有什么提示
发表于 2010-10-20 08:03:27 | 显示全部楼层
本帖最后由 republican 于 2010-10-20 08:04 编辑

回复 14# qq123123

不明白你是怎么搭建编译环境?

与IE6无关,只要是Winhttp 5.1以上版本即支持。

使用以下代码试试吧:
#include <WinHttp_GetRespond.au3>
#include <array.au3>
$MyOpen=_WinHttpOpen()        

$Test = InputBox("请输入用户名","请输入用户民")
$rContext=_WinHTTP_GetRespond($MyOpen,"https://passport.sohu.com/jsonajax/checkusername.action?shortname="&$Test&"&domain=sohu.com&appid=8888&_t=1286978861640&mobileReg=false",0,2)
$rContext[0]=BinaryToString($rContext[0])
_ArrayDisplay($rContext)
MsgBox(0,"文件内容",$rContext[0])
Switch StringRegExpReplace(BinaryToString($rContext[0]),'.*"status":"(\d+)".*','$1')
        Case 0
                MsgBox(64,"恭喜","该用户名并未被使用~")
        Case 1
                MsgBox(48,"抱歉","该用户名已经被使用!")
EndSwitch

_WinHttpCloseHandle($MyOpen)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 07:31 , Processed in 0.119505 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表