• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php的curl携带header请求头信息实现http访问的方法

     导读:

    curl请求时添加请求头信息可以模拟真人操作,不容易被当成是爬虫机器人(采集),从而可以绕过Incapsula等安全验证机制。

    1、首先使用浏览器(示例使用的是火狐浏览器)访问接口网址,使用F12调试,查看请求头信息,如下:

    2、实现代码:

    ?php
    /**
     * 开始访问请求
     * @param $url
     * @return bool|string
     */
    function fetch_url($url) {
    	$header = FormatHeader($url);
    	$useragent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0';
    	$timeout= 120;
    	$ch = curl_init($url);
    	curl_setopt($ch, CURLOPT_FAILONERROR, true);
    	//设置请求头信息
    	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    	//不取得返回头信息	
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    	// 关闭https验证
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
    	curl_setopt($ch, CURLOPT_ENCODING, "" );
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
    	curl_setopt($ch, CURLOPT_AUTOREFERER, true );
    	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout );
    	curl_setopt($ch, CURLOPT_TIMEOUT, $timeout );
    	curl_setopt($ch, CURLOPT_MAXREDIRS, 10 );
    	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    	$content = curl_exec($ch);
    	if(curl_errno($ch))
    	{
    		echo 'Error:' . curl_error($ch);
    	}
    	else
    	{
    		return $content;    
    	}
    	curl_close($ch);
    }
     
    //添加请求头
    function FormatHeader($url)
    {
     // 解析url
     $temp = parse_url($url);
     $query = isset($temp['query']) ? $temp['query'] : ''; 
     $path = isset($temp['path']) ? $temp['path'] : '/'; 
     $header = array (
     "POST {$path}?{$query} HTTP/1.1",
     "Host: {$temp['host']}",
     "Referer: http://{$temp['host']}/",
     "Content-Type: text/xml; charset=utf-8",
     'Accept: application/json, text/javascript, */*; q=0.01',
     'Accept-Encoding:gzip, deflate, br',
     'Accept-Language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
     'Connection:keep-alive',
     'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
     'X-Requested-With: XMLHttpRequest',
     );
     return $header;
    }
    ?>

    3、调用示例:

    ?php
    //lcg_value() 返回范围为 (0, 1) 的一个伪随机数
    $url="http://www.xxx.com/getdata.php?v=".lcg_value();
    //访问网址
    $html = fetch_url($url);

    到此这篇关于php的curl携带header请求头信息实现http访问的方法的文章就介绍到这了,更多相关php的curl请求头信息实现http访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • php curl发起get与post网络请求案例详解
    • 浅谈PHP模拟发送POST请求之curl基本使用
    • php远程请求CURL实例教程(爬虫、保存登录状态)
    • PHP如何使用cURL实现Get和Post请求
    • php curl返回错误码60如何解决
    上一篇:php结合GD库简单实现验证码的示例代码
    下一篇:六种php加密解密方法实例讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    php的curl携带header请求头信息实现http访问的方法 php,的,curl,携带,header,请求,