PHP の CURL の通常のクロール ページ プログラムは次のとおりです:
$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);
302 ステータスをクロールする場合、クロール プロセス中にいくつかのジャンプで次のリンクにパラメーターを渡す必要があるため、同時に次のリンクに、また、対応するパラメータを受信しない場合は不正アクセスとなるように設定されています。
表示は正常になるはずです。
上記は関数を取得するために使用されており、ほとんど問題ないはずです。 CURLOPT_CUSTOMREQUESTに関する情報を確認できます。
HTTPリクエストには「GET」または「HEAD」の代わりにカスタムリクエストメッセージを使用します。これは、「DELETE」またはその他の秘密の HTTP リクエストを実行する場合に役立ちます。有効な値は「GET」、「POST」、「CONNECT」などです。つまり、HTTP リクエスト全体をここに入力しないでください。たとえば、「GET /index.html HTTP/1.0rnrn」と入力するのは誤りです。
302 ジャンプ後のページをキャプチャする PHP カールの例に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。