您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php curl 有验证码 模拟登陆的问题

2025/11/19 22:59:00发布20次查看
学习了php不久,想要登陆我们学校的教务管理系统抓取下信息,可是验证码那关实在不知道怎么过
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
,然后在跳转之后的页面提交表单,可是不知道怎样得到这个地址唉。。。 用正则提取地址
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product