PHPでは、cURLライブラリを使用してHTTPリクエストをシミュレートし、リクエストヘッダーを設定することで、ウェブページのクローリングを行うことができます。以下に例コードを示します:
// 创建 cURL 句柄
$ch = curl_init();
// 设置请求 URL
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com');
// 设置请求头信息
$headers = array(
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Referer: https://www.google.com/',
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// 设置其他 cURL 选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 执行 HTTP 请求
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
}
// 关闭 cURL 句柄
curl_close($ch);
// 输出响应结果
echo $response;上記のコードでは、まず cURL ハンドルを生成し、リクエスト対象の URL およびリクエストヘッダ情報を設定しています。リクエストヘッダには、User-Agent、Accept、Accept-Language、Refererなど、一般的なリクエストヘッダフィールドが含まれており、必要に応じてこれらを自由に追加または変更することができます。
さらに、`CURLOPT_RETURNTRANSFER`、`CURLOPT_FOLLOWLOCATION`、`CURLOPT_SSL_VERIFYHOST`、および `CURLOPT_SSL_VERIFYPEER`といった他の `cURL` オプションも設定しています。これらのオプションは、応答結果の返却有無、リダイレクトの追跡有無、SSL証明書の検証有無など、`cURL` の動作を制御するのに使用できます。
最後に、HTTPリクエストを実行し、応答結果をページ上に出力しました。エラーが発生した場合、`curl_errno`および`curl_error`関数を用いてcURLのエラーメッセージを出力しました。