curl 方法抓取页面时出现的问题,
前不久做了个成绩查询的代理系统,用curl方法模拟登录学校的教务系统(asp写的,并且写的非常烂),进行抓取信息内容,再将内容进行展现。
之后学校的教务系统换新的了,是用jsp写的,添加了验证码这个功能,然后我获取到验证码,进行输入,然后用curl方法提交http请求,可是抓取到的结果返回的都是“数据库忙请稍候再试”,而我把url打出来,直接输到地址栏是可以进入教务系统的;并且我用postman发生http请求,get、post方法都能进入系统,唯独用php的curl方法会出现“数据库忙”。。后来用ruby写了一段类似的代码,是用net:http的方法,同样也出了“数据库忙请稍后再试”,同样把url复制到地址栏也能进入。。不知道问题所在。。求助。。
下面上图。。
echo $url.'
';
$ch = curl_init($url);
curl_setopt($ch, curlopt_returntransfer,1);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
代码没有加任何的其他setopt。。求大神指点指点。。是什么问题。。
------解决方案--------------------
是有點奇怪,估計是header有些不同的。
------解决方案--------------------
1、他有验证码,你是如何处理的
2、他有 cookie,也没看到你是如何处理的
------解决方案--------------------
引用:quote: 引用:
抓的包贴出来看看。
以上是登录成功的请求头
这是我模拟的请求头。。
只看了你的url有验证码的参数,没有看到cookie的处理,尝试在curl中添加cookie的相关参数。
------解决方案--------------------
要有curl的cookejar,和set opt header,网上搜搜这两个的用法应该就能够出结果了