在 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 等常見的請求頭字段,你可以根據需要自行添加或修改。
然後,我們還設置了一些其他的 cURL 選項,如 CURLOPT_RETURNTRANSFER、CURLOPT_FOLLOWLOCATION、CURLOPT_SSL_VERIFYHOST 和 CURLOPT_SSL_VERIFYPEER,這些選項可以控制 cURL 的行爲,例如是否返回響應結果、是否跟隨重定向、是否驗證 SSL 證書等等。
最後,我們執行了 HTTP 請求,並將響應結果輸出到頁面上。如果有錯誤發生,我們還通過 curl_errno 和 curl_error 函數輸出了 cURL 的錯誤信息。