Heim  >  Artikel  >  Backend-Entwicklung  >  Curl 方法抓取页面时出现的有关问题

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

WBOY
WBOYOriginal
2016-06-13 12:05:03900Durchsuche

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,网上搜搜这两个的用法应该就能够出结果了
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn