找回密码
 加入
搜索
查看: 3439|回复: 14

Get时怎么获取这个网址的随机码

[复制链接]
发表于 2009-10-9 16:51:14 | 显示全部楼层 |阅读模式
本帖最后由 maker 于 2009-10-13 16:41 编辑

要get的网址:http://iq.sdo.com/iq2/WebInterFa ... amp;_=1255076568250

往前面的页面找可以找到除&_=1255076568250之外的链接,怎么才可以取得&_=的值?
前一页内容的网址是:http://www.sdo.com/home/top.asp,我就不贴网页源码了,太长了,登陆后就可以在var url = ""代码中找到需要get的前段地址
发表于 2009-10-9 18:00:43 | 显示全部楼层
不大明白......
发表于 2009-10-9 18:17:48 | 显示全部楼层
字符串处理函数来解决
$oUrl = "http://iq.sdo.com/iq2/WebInterFace/IQUserSimpleInfo.ashx?PlayerID=vcryazlzz&time=2009-10-09%2016:22:47&en=6048939F679FB194DA40F2C10EA9E8D5&_=1255076568250"
$oResult = StringRight($oUrl,13)
ConsoleWrite($oResult & @CRLF)
 楼主| 发表于 2009-10-9 18:28:03 | 显示全部楼层
- - !  楼上理解错了,我要做的事用xmlhttp来操作登录网站,上面我说的地址是中_=的值是随机的get地址,也就是每次get该地址中最后一项的值不对的话就会返回错误页面,我想知道是怎么算出_=后的随机码的。
发表于 2009-10-9 18:32:00 | 显示全部楼层
你的问题,我记得在上次你的问题中回复过你,你查看一下,是用的正则
 楼主| 发表于 2009-10-9 18:42:19 | 显示全部楼层
本帖最后由 maker 于 2009-10-9 18:50 编辑

恩,jhwl ,thx,正则取en值是可以取到的,不过之前的页面只有-=之前的链接,之后的值找不到。。。我想知道怎么找到该值给出的地方是在哪里
发表于 2009-10-9 19:00:19 | 显示全部楼层
用xml获取,里面代码就有一段地址,这个地址是跳转的
$HTMLSource = StringRegExp(_XmlHttp("http://www.sdo.com/IndexIframeLogin.asp"),'(?<=var path    \=   ").*?(?=")',3)
$lt=StringRegExp(_XmlHttp($HTMLSource[0]),'(?<=lt" value=").*?(?=")',3)
ConsoleWrite($lt[0]) ;这里是得到的表单lt的值
Func _XmlHttp($url)
        Local $oHTTP, $sReturn
        $httpObj = ObjCreate("winhttp.winhttprequest.5.1")
        $httpObj.open("GET", $url)
        $httpObj.send()
        $HTMLSource = StringAddCR($httpObj.Responsetext)
        Return $HTMLSource
EndFunc   ;==>_XmlHttp
如这段代码,两次获取,你认真观察一下,第一次获取实际上一个跳转页面URL的代码
 楼主| 发表于 2009-10-9 19:42:21 | 显示全部楼层
lt那个我理解了,只是请看xml这段是如lt一样的,是没有给出-=之后的值的:
                        //记录用户登录的当前的页面
                        Util.Cookie.setStatSession("SDO_REFERER",window.top.location.href,"sdo.com");
                        
                        
                var url = "http://iq.sdo.com/iq2/WebInterFace/IQUserSimpleInfo.ashx?PlayerID=vcryazlzz&time=2009-10-09 16:22:47&en=6048939F679FB194DA40F2C10EA9E8D5";
        //        location.href = url;
        
                $.getScript(url, function(){
                    if (typeof(IQUserInfo)!="undefined"){
                        var aryPersonInfo = IQUserInfo.split("^$^");
                        if(aryPersonInfo[0]>=0){
                            showSms(aryPersonInfo);
                        }else{
                            showSms(["0","0"]);
                        }
                    }else{
                        showSms(["0","0"]);
                    }
                });
发表于 2009-10-9 23:05:37 | 显示全部楼层
这种值完全是随机的,无法计算
 楼主| 发表于 2009-10-10 09:17:37 | 显示全部楼层
回楼上,不过我要做的工具有人做出来的,应该是有取值的方法的
 楼主| 发表于 2009-10-10 16:53:29 | 显示全部楼层
如果跳过这个get 执行下一个get,返回数据不一样并且会出一段代码,不知道和这个get有关系没,网页中的代码:
<span id="_ctl0_ContentPlaceHolder1_lblErrMsg" style="color:Red;">回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。</span>
发表于 2009-10-10 22:48:33 | 显示全部楼层
这个应该没办法算出来的。。
这个值估计就是为了防止外部提交而设计的
除非你知道服务器是怎么算的
 楼主| 发表于 2009-10-11 09:35:25 | 显示全部楼层
哎,郁闷,别人有做出类似的软件,抢商品的软件,搞不懂他们怎么做到的了,头大
发表于 2009-10-11 22:11:59 | 显示全部楼层
maker,你的问题,不知道是我没弄清楚还是你没有说明白,像这种代码据xml获取信息一步一步解析,xml反回的信息根据网页的内容进行分析,当然很多情况里是能过javascript跳转的所以你用ie是观察不到的,如http://www.sdo.com/IndexIframeLogin.asp这个页面你所查看的源码,并非此页面而是访问此页面提交跳转过来的,而那个地址就是获取临时码,上文中lt的值是经过两次获取源码中提取的,这个值是随机动态真实的,并非是简单正则获取,倘若如此lt的值是无效的,如果不明白的地方请咨询我,希望能给你一个最佳的答案
 楼主| 发表于 2009-10-12 01:08:23 | 显示全部楼层
恩,非常感谢热心肠的jhwl,我再清理下脑袋再看看网页源码,没有做过网站可能很多代码看不懂,有什么坎过不去再麻烦你哈,呵呵
还有,我闲着没事看到帽子的一个问题,是用post发送文件,还没有完全解决,你有空也看下代码send处貌似发送数据的编码不对头,是不是要用2进制来发?
他的贴:http://www.autoitx.com/forum.php ... amp;page=1#pid95990
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-5 00:08 , Processed in 0.081332 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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