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!