Heim  >  Artikel  >  php教程  >  Beispiel für die Verwendung von PHP Curl zum Erfassen der Seite nach einem 302-Sprung

Beispiel für die Verwendung von PHP Curl zum Erfassen der Seite nach einem 302-Sprung

高洛峰
高洛峰Original
2017-01-03 17:43:342213Durchsuche

Das normale CURL-Crawling-Seitenverfahren von PHP lautet wie folgt:

$url = 'http://www.baidu.com';
 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
$ret = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch);


Wenn Sie den Status 302 crawlen, liegt das daran, dass während des Crawling-Vorgangs einige Sprünge erforderlich sind. Der nächste Link übergibt Parameter , und der nächste Link setzt ihn auch als illegalen Zugriff, wenn die entsprechenden Parameter nicht empfangen werden.

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');

Die Anzeige sollte normal sein.

Das Obige wird verwendet, um die Funktion zu ergreifen, was fast kein Problem sein sollte. Sie können CURLOPT_CUSTOMREQUEST-bezogene Informationen überprüfen.

Verwenden Sie für die HTTP-Anfrage eine benutzerdefinierte Anfragenachricht anstelle von „GET“ oder „HEAD“. Dies ist nützlich, um „DELETE“ oder andere verdecktere HTTP-Anfragen auszuführen. Gültige Werte sind „GET“, „POST“, „CONNECT“ usw. Das heißt, geben Sie hier nicht die gesamte HTTP-Anfrage ein. Beispielsweise ist die Eingabe von „GET /index.html HTTP/1.0rnrn“ falsch.

Weitere Beispiele für die PHP-Curl-Implementierung zum Ergreifen der Seite nach 302-Sprung und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn