210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/default2.aspx
///
还请论坛的牛人们指点指点
回复讨论(解决方案) 验证码 要么人肉要么机器识别,机器识别要根据验证码的特征做处理,没那么简单.人肉嘛做个输入提交,带上cookie.
有验证码的做模拟登入太麻烦,要识别验证码。只要对方改个复杂的,就没办法了。
验证码 要么人肉要么机器识别,机器识别要根据验证码的特征做处理,没那么简单.人肉嘛做个输入提交,带上cookie.
我是要人肉输入,验证码已经取到,现在在post的时候返回一个object moved to here.
百度了下说是陷入了重定向,不懂爱这里犯迷糊了,不知该如何处理呢?
有验证码的做模拟登入太麻烦,要识别验证码。只要对方改个复杂的,就没办法了。
我是要人肉输入,验证码已经取到,现在在post的时候返回一个object moved to here.
百度了下说是陷入了重定向,不懂爱这里犯迷糊了,不知该如何处理呢? curlopt_followlocation 有设置这个为1吗?
curlopt_followlocation 有设置这个为1吗?
设上果真没了,
现在是 bad request (invalid number),这又是什么问题啊 你传入的数字不合法,看看是不是人家让输入数字,你输入其他内容了。
最好贴出你代码分析下。
最好贴出你代码分析下。
经过分析发现,实际登陆地址应该是210.44.176.133,然后被重定向到这样的地址210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/default2.aspx,中间括号里的是随机的每次都不同,现在那我应该怎么样去得到这重定向后的地址呢?
这是我写的方法
function curl_get_url(){ $cookie_file=tempnam('./ck','cookie'); $ch = curl_init(http://210.44.176.133); curl_setopt($ch, curlopt_ssl_verifyhost, 1); curl_setopt($ch, curlopt_ssl_verifypeer, false); curl_setopt($ch, curlopt_returntransfer, 1); curl_setopt($ch,curlopt_followlocation,true); curl_setopt($ch, curlopt_cookiejar, $cookie_file); curl_setopt($ch, curlopt_maxredirs, 10); $data = curl_exec($ch);//运行curl curl_close($ch); return $data; }
你传入的数字不合法,看看是不是人家让输入数字,你输入其他内容了。
经过分析发现,实际登陆地址应该是210.44.176.133,然后被重定向到这样的地址210.44.176.133/(0qus0s55gb1ojp45n2h0sr55)/default2.aspx,中间括号里的是随机的每次都不同,现在那我应该怎么样去得到这重定向后的地址呢?
这是我写的方法
function curl_get_url(){ $cookie_file=tempnam('./ck','cookie'); $ch = curl_init(http://210.44.176.133); curl_setopt($ch, curlopt_ssl_verifyhost, 1); curl_setopt($ch, curlopt_ssl_verifypeer, false); curl_setopt($ch, curlopt_returntransfer, 1); curl_setopt($ch,curlopt_followlocation,true); curl_setopt($ch, curlopt_cookiejar, $cookie_file); curl_setopt($ch, curlopt_maxredirs, 10); $data = curl_exec($ch);//运行curl curl_close($ch); return $data; }
request url:http://210.44.176.133/
request method:get
status code:302 found
request headersview source
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding:gzip,deflate,sdch
accept-language:zh-cn,zh;q=0.8
cache-control:max-age=0
connection:keep-alive
cookie:ttklinkfirst=1; hm_lvt_f5127c6793d40d199f68042b8a63e725=1390729405,1390740179,1390790720,1390790808; hm_lpvt_f5127c6793d40d199f68042b8a63e725=1390791234
host:210.44.176.133
user-agent:mozilla/5.0 (windows nt 6.2) applewebkit/537.36 (khtml, like gecko) chrome/31.0.1650.57 safari/537.36
response headersview source
cache-control:private
connection:close
content-length:158
content-type:text/html; charset=gb2312
date:mon, 27 jan 2014 02:54:29 gmt
location:/(di3bfgq4zqk5c23n2ofovr45)/default2.aspx
server:microsoft-iis/6.0
x-aspnet-version:1.1.4322
x-powered-by:asp.net
在 curl_setopt($ch, curlopt_cookiejar, $cookie_file); 前面加上
curl_setopt($ch, curlopt_cookiefile, $cookie_file);
你用的是 get 方式,一般登录应该是 post 方式吧
你的地址是内网地址,无法测试
只能你自己慢慢调试了
在 curl_setopt($ch, curlopt_cookiejar, $cookie_file); 前面加上
curl_setopt($ch, curlopt_cookiefile, $cookie_file);
你用的是 get 方式,一般登录应该是 post 方式吧
你的地址是内网地址,无法测试
只能你自己慢慢调试了
这不是post的地方,是post之前的访问地址,post的时候没有提交cookie,学校是是通过记录那段随机地址来判断用户的应该是,现在就是想得到那个随机地址,这是你登陆页面,登陆后会跳转
210.44.176.133 --跳转--> 210.44.176.133 /(0qus0s55gb1ojp45n2h0sr55)/default2.aspx
,然后在跳转之后的页面提交表单,可是不知道怎样得到这个地址唉。。。 用正则提取地址
