>백엔드 개발 >PHP 튜토리얼 >Curl 方法抓取页面时出现的有关问题

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

WBOY
WBOY원래의
2016-06-13 12:05:03965검색

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

	echo $url.'<br>';<br />	$ch = curl_init($url); <br />	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); <br />	$content = curl_exec($ch); <br />	curl_close($ch);<br />	echo $content;

代码没有加任何的其他setopt。。求大神指点指点。。是什么问题。。
------解决方案--------------------
是有點奇怪,估計是header有些不同的。
------解决方案--------------------
1、他有验证码,你是如何处理的
2、他有 cookie,也没看到你是如何处理的
------解决方案--------------------

引用:
Quote: 引用:

抓的包贴出来看看。






以上是登录成功的请求头


这是我模拟的请求头。。


只看了你的url有验证码的参数,没有看到Cookie的处理,尝试在curl中添加cookie的相关参数。
------解决方案--------------------
要有curl的cookejar,和set opt header,网上搜搜这两个的用法应该就能够出结果了
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.