2010-03-14 12 views
36

Istnieją strony internetowe, które po uruchomieniu konkretnej prośby ajaxowej w przeglądarce uzyskują wynikową stronę, ale gdy próbuję załadować je za pomocą curl, otrzymuję błąd z serwera.php curl: jak mogę emulować żądanie pobierania dokładnie tak, jak przeglądarka internetowa?

Jak prawidłowo emulować żądanie pobrania na serwer, który symuluje przeglądarkę?

to co robię:

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname"; 
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 
5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'); 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,$url); 
$result=curl_exec($ch); 
print $result; 
+0

Co błędu nie można uzyskać z serwera? – bmb

+0

witryna zwraca xml z komunikatem o błędzie "Błąd tagu" – ufk

+0

dość, że będzie ignorować JS niezależnie. – mpen

Odpowiedz

58

Czy na pewno honory moduł curl ini_set ('user_agent', ...)? Istnieje opcja CURLOPT_USERAGENT opisana pod adresem http://docs.php.net/function.curl-setopt.
Czy może być również plik cookie przetestowany przez serwer? Możesz obsłużyć, używając CURLOPT_COOKIE, CURLOPT_COOKIEFILE i/lub CURLOPT_COOKIEJAR.

edytuj: Ponieważ żądanie wykorzystuje https, może również występować błąd podczas weryfikacji certyfikatu, zobacz CURLOPT_SSL_VERIFYPEER.

$url="https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname"; 
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_URL,$url); 
$result=curl_exec($ch); 
var_dump($result); 
+0

dzięki za informacje. – ufk

+2

Awesome. Utknąłem na tym samym. SSL_VERIFYPEER = false zrobił lewę. Dzięki! – beetree

+0

co muszę zmienić, jeśli chcę symulować najnowszy firefox? – Sisir

Powiązane problemy