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,網上搜搜這兩個的用法應該就能夠出結果了