PHP 采集专用curl函数封装

代码


**
* Curl 伪造 IP 并从指定网址获取数据
* @param $url string 接口地址
* @param $ip string|boolean 伪造的 IP
* @param $isMobile boolean 是否手机
* @return bool|string 抓取到的内容
*/
function apiCurl($url,$ip=false,$isMobile=false){
$ch = curl_init(); // Curl 初始化
$timeout = 30; // 超时时间:30s
if($isMobile){
$ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/72.0.3626.101 Mobile/15E148 Safari/605.1';
}else{
$ua='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'; // 伪造抓取 UA
}
curl_setopt($ch, CURLOPT_URL, $url); // 设置 Curl 目标
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Curl 请求有返回的值
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 设置抓取超时时间
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 跟踪重定向
curl_setopt($ch, CURLOPT_ENCODING, ""); // 设置编码
curl_setopt($ch, CURLOPT_REFERER, $url); // 伪造来源网址
if(!$ip){
$ip = rand(0,254).'.'.rand(0,254).'.'.rand(0,254).'.'.rand(0,254);//随机生成ip数据
}
curl_setopt($ch, CURLOPT_USERAGENT, $ua); // 伪造ua
curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 取消gzip压缩
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$content = curl_exec($ch);
curl_close($ch); // 结束 Curl
return $content; // 函数返回内容
}

版权声明:
作者:超级管理员
链接: https://blog.apecloud.ltd/article/detail.html?id=68
来源:猿码云个人技术站
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
/static/admin/img/weixin.jpg/static/admin/img/zfb.jpg
<<上一篇>
实战中如何使用Git
下一篇>>