PHP伪造请求头采集网页
时间:2023年10月04日
/来源:网络
/编辑:佚名
在 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 的错误信息。
// 创建 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 的错误信息。
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03