服务热线
1888888888
作者:文煞发布时间:2024-01-03分类:PHP笔记浏览:260
上一篇文章讲述了利用PHP完成简单的采集工作,在实际使用的时候,你会发现还是有很多网站的信息你无法采集到,不管你怎么优化代码都无济于事!这时候有可能你的程序被该网站拦截了,你无法获取到想要的内容。大部分情况下,我们模拟真实用户访问即可解决该类问题。当然你的服务器IP被封了除外。
由此可见,在使用 cURL 来模拟真实用户访问时,设置完善的请求头部信息是非常重要的,不然可能会一些有限制的服务器拒绝访问。以下是文煞PHP笔记网为你整理的一些常见的请求头部信息,你可以根据需要自定义调整:
1. User-Agent(用户代理):设置一个常见的浏览器的 User-Agent,例如:
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
2. Referer(来源页面):设置请求的来源页面,当你从一个页面跳转到另一个页面时,通常会设置 Referer,例如:
curl_setopt($curl, CURLOPT_REFERER, 'https://www.example.com/previous-page');
3. Accept(可接受媒体类型):设置你可以接受的响应媒体类型,例如:
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'));
4. Accept-Language(接受的语言):设置你可以接受的语言,例如:
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept-Language: en-US,en;q=0.8'));
5. Cookie(设置请求时的 Cookie):设置请求时送出的 Cookie,例如:
curl_setopt($curl, CURLOPT_COOKIE, 'cookie_name=cookie_value');
设置Cookie信息通常可以解决需要登录才能访问的网站,在以前很多小说网站的站长使用关关采集器的时候,通常需要写一个PHP文件来处理需要登录才能采集的小说章节,比如VIP章节,一般情况下是提前充值好书币,采集一篇扣一次,这样就可以采集到很多小说网站的VIP小说了。但是现在不提倡做小说网站,版权意识和维护力度在中国到达了新高度,劝君不要顶风作案!
以上是一些常见的请求头部信息示例,也是最实用的,不完善之处希望大家自行阅读相关教程进行了解!在上面的头部信息中,你可以根据需要自定义调整。注意,在模拟真实用户访问时,请求头部信息应该与实际浏览器发送的请求头部信息相匹配,以便更准确地模拟真实用户的行为。
分享一个完整的代码:
<?php $url = 'https://www.example.com'; // 要访问的网站URL $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // 设置用户代理 curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'); // 设置来源页面 curl_setopt($curl, CURLOPT_REFERER, 'https://www.example.com/previous-page'); // 设置可接受的媒体类型 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')); // 设置可接受的语言 curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept-Language: en-US,en;q=0.8')); // 设置Cookie curl_setopt($curl, CURLOPT_COOKIE, 'cookie_name=cookie_value'); $response = curl_exec($curl); if ($response === false) { echo 'cURL Error: ' . curl_error($curl); } else { echo $response; } curl_close($curl); ?>
在以上案例代码中有关于用户代理、来源页面、可接受媒体类型、接受的语言和Cookie的设置部分已经加入到了cURL选项中。你在使用的时候只需要进行适当的修改、删除或者增加即可!
分享:
支付宝
微信