2014-01-29 4 views
3

Я пытаюсь использовать завиток, чтобы получить ответ с веб-страницы. Но я получаю разные ответы при использовании завитка и при обычном просмотре.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) Version/5.0.2 Mobile/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'); 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'); ', но не имеет значения. –

Смежные вопросы