Curl 方法抓取页面时出现的问题,

php中文网
发布: 2016-06-23 13:51:19
原创
1184人浏览过

    前不久做了个成绩查询的代理系统,用curl方法模拟登录学校的教务系统(ASP写的,并且写的非常烂),进行抓取信息内容,再将内容进行展现。
    之后学校的教务系统换新的了,是用JSP写的,添加了验证码这个功能,然后我获取到验证码,进行输入,然后用curl方法提交HTTP请求,可是抓取到的结果返回的都是 “数据库忙请稍候再试”,而我把URL打出来,直接输到地址栏是可以进入教务系统的;并且我用POSTMAN发生HTTP请求,GET、POST方法都能进入系统,唯独用PHP的CURL方法会出现“数据库忙”。。后来用ruby写了一段类似的代码,是用net:http的方法,同样也出了“数据库忙请稍后再试”,同样把URL复制到地址栏也能进入。。不知道问题所在。。求助。。
   下面上图。。
   

	echo $url.'<br>';	$ch = curl_init($url); 	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 	$content = curl_exec($ch); 	curl_close($ch);	echo $content;
登录后复制

代码没有加任何的其他setopt。。求大神指点指点。。是什么问题。。

问问小宇宙
问问小宇宙

问问小宇宙是小宇宙团队出品的播客AI检索工具

问问小宇宙 77
查看详情 问问小宇宙

回复讨论(解决方案)

//USERAGENT 模拟一个试试curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; c8650 Build/GWK74) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1s'); 
登录后复制

估?判?了user agent,?主模?一?看看。

//USERAGENT 模拟一个试试curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; c8650 Build/GWK74) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1s'); 
登录后复制



回复1L:
一开始也觉得是UserAgent的问题,但是加了这句话依然是“数据库忙”

估?判?了user agent,?主模?一?看看。



加了类似1楼的User Agent 的setopt,依然是“数据库忙"

print_r(file_get_contents($url));
这样提示什么?

是有?奇怪,估?是header有些不同的。

print_r(file_get_contents($url));
这样提示什么?



也是如上图所示的“数据库忙”。。。

会不会是因为验证码的问题?

抓的包贴出来看看。



上个回复忘记打码了

抓的包贴出来看看。







以上是登录成功的请求头


这是我模拟的请求头。。

1、他有验证码,你是如何处理的
2、他有 cookie,也没看到你是如何处理的


抓的包贴出来看看。







以上是登录成功的请求头


这是我模拟的请求头。。

只看了你的url有验证码的参数,没有看到Cookie的处理,尝试在curl中添加cookie的相关参数。

要有curl的cookejar,和set opt header,网上搜搜这两个的用法应该就能够出结果了

感谢楼上各位的回复,已成功解决。
具体问题出在cookie上,原本以为 登录后才需要获取它的cookie,再进行后续操作,后来才发现获取验证码时会分配一个JSESSIONID(cookie),登录的时候需要将这个cookie一并提交,然后我就写了一个先是模拟访问

继续楼上未打完的部分:
写了一个先是模拟访问验证码地址的curl,取得cookie并保存,
然后显示验证码,提交表单,将postfileds,cookie一并提交,就模拟成功了。。


真是非常感谢,马上结贴

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号