2014-01-29 74 views
3

我正在嘗試使用curl從網頁獲取響應。但是,在使用捲曲和正常瀏覽時,我會得到不同的回覆。Curl給出了與普通瀏覽器不同的響應

PHP文件

$ch = curl_init(); 
echo "trying<br>"; 
//$url = "home.iitk.ac.in/~gopi/student_search/feedback.php"; 
$roll_no = "11101"; 
$name=""; 
$program="all"; 
$department="all"; 
$email=""; 
$gender="both"; 
$city=""; 
$course=""; 
$order="id"; 
$hostel=""; 
$bg=''; 
$tile = '0'; 
$offset = 0; 
$url = "http://search.junta.iitk.ac.in/get2.php?&tile=0&roll_no=".$roll_no."&name=".$name." 
         &program=".$program."&dept=".$department."&login=".$email."&gender=".$gender." 
         &city=".$city."&course=".$course."&hostel=".$hostel."&bg=".$bg."&offset=".$offset; 
         echo $url; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 
$ret_val = curl_error($ch); 
echo $result; 
echo $ret_val; 
curl_close($ch); 

,這導致我在這個頁面,

enter image description here

但是,當我直接去相同的URL,它給了我44分的結果。

enter image description here

和更多的結果。

如何使用curl獲得相同的結果?

編輯

(不工作)。

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_REFERER, 'http://search.junta.iitk.ac.in'); 
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 

$result = curl_exec($ch); 

回答

6

貌似目標服務器檢查用戶代理,如果它不是,它拋出它的方式一個真正的瀏覽器(或通常的行爲有所不同) 。

嘗試指定所述用戶代理 - http://curl.haxx.se/docs/manpage.html

例如:

捲曲-A「的Mozilla/5.0(iPhone; U; CPU iPhone OS 4_3_3像的Mac OS X; EN-US)爲AppleWebKit /533.17.9(KHTML,例如Gecko)版本/ 5.0.2移動/ 8J2 Safari瀏覽器/ 6533.18.5" http://www.apple.com

在PHP:

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
+0

似乎是這樣。我如何在PHP中指定用戶代理? –

+0

見編輯..讓我知道它是否適合你。乾杯! – Dropout

+0

我試着添加'curl_setopt($ ch,CURLOPT_REFERER,'http://search.junta.iitk.ac.in'); (Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13)Gecko/20080311 Firefox/2.0.0.13');',但沒有區別。 –

相關問題