//实现使用curl模拟百度蜘蛛进行采集
class Curlcontent{

protected function _GetContent( $url )
    {
   
        $this->ch = curl_init();
        $this->ip = '220.181.108.'.rand(1,255);  // 百度蜘蛛
        $this->timeout = 15;
        curl_setopt($this->ch,CURLOPT_URL,$url);
        curl_setopt($this->ch,CURLOPT_TIMEOUT,0);
        //伪造百度蜘蛛IP  
        curl_setopt($this->ch,CURLOPT_HTTPHEADER,array('X-FORWARDED-FOR:'.$this->ip.'','CLIENT-IP:'.$this->ip.'')); 
        //伪造百度蜘蛛头部
        curl_setopt($this->ch,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
        curl_setopt($this->ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($this->ch,CURLOPT_HEADER,0);
        curl_setopt($this->ch,CURLOPT_CONNECTTIMEOUT,$this->timeout);
        curl_setopt($this->ch,CURLOPT_SSL_VERIFYPEER,false);
        $content = curl_exec($this->ch);

        if($content === false)
        {//输出错误信息
            $no = curl_errno($this->ch);
            switch(trim($no))
            {
                case 28 : $this->error = '访问目标地址超时'; break;
                default : $this->error = curl_error($this->ch); break;
            }
            echo $this->error;
        }
        else
        {
            $this->succ = true;
            return $content;
        }
    }
    public  function getcurl($url){
    return $this->_GetContent($url);
    }
}
$api = "https://www.maihuangjin.com/mobile/";
$Curlcontent = new Curlcontent();
$data = $Curlcontent->getcurl($api);


php 实现使用curl模拟百度蜘蛛进行采集的更多相关文章

  1. PHP 非常实用下载远程图片

    /*** 下载远程图片* @param string $url 图片的绝对url* @param string $f......

  2. php的lavarel框架中join和orWhere的用法

    Laravel是一个开源PHP框架,功能强大且易于理解。它遵循模型 - 视图 - 控制器设计模式(MVC)。Lara......

  3. php中yum命令用法详解

    在php中关于yum命令还是比较多的,主要是因为在配置linux环境,linux中安装、卸载等各种操作中,因此,掌握......

  4. php中__call()方法使用

    <无详细内容>"","where"=>"&quo......

  5. php中数组最简单的使用方法

    我们在说映射的时候,有些小伙伴就会联想到数组,没错,因为数组就是用了映射的思想。这里很多刚学php的小伙伴对概念不是......

  6. PHP设计模式之原型模式示例详解

    前言原型模式其实更形象的来说应该叫克隆模式。它主要的行为是对对象进行克隆,但是又把被克隆的对象称之为最初的原型,于是......

  7. docker中实现安装php拓展步骤讲解

    一:php核心拓展包安装在docker中安装的php有一些核心的拓展包,他们一般放置在/usr/src/php/ex......

  8. php 繁体简体互转类

    utf8_gb2312 = "么万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩......

  9. php中PHPUnit框架实例用法

    本期给大家带来的框架是一个单元测试内容,本身不是很难的东西,大家觉得困难,可能是把自己框在了技术上,事实上,并非如此......

  10. PHP文件操作简单介绍及函数汇总

    文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的。如今,PHP文件操作的函数内容已经非......

随机推荐

  1. 【函数分享】每日PHP函数分享

    str_pad() 使用另一个字符串填充字符串为指定长度 。string str_pad ( string $i......

  2. JavaScript 如何禁止用户保存图片

    场景 在业务需求中不希望用户保存图片,因为是一些供内部使用的图片。 思路 添加事件禁止选择、拖拽、右键(简单的禁......

  3. MySQL数据类型全解析

    数据类型:定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。数据类型用于以下目的:1、允许限制可存储在列中的......

  4. 深入解析vue响应式原理

    摘要:本文主要通过结合vue官方文档及源码,对vue响应式原理进行深入分析。1.定义作为vue最独特的特性,响应式可......

  5. 翻译 - ASP.NET Core 基本知识 - Web 主机 (Web Host)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundament......

  6. 10步写了个Django网站

    Django做网站只要10步,真的只有10步,不信?咱们来数数……今天主要讲解用Pycharm编辑器搭建网站,网站功......

  7. 剪枝决策树原理与Python实现

    机器学习经典模型决策树的实现原理,以及Python实现目录一、决策树模型 二、选择划分 2.1 信息熵和信息增益 2......

  8. Android 代码规范大全

    前言虽然我们项目的代码时间并不长,也没经过太多人手,但代码的规范性依然堪忧,目前存在较多的比较自由的「代码规范」,这......

  9. java 利用HttpClient PostMethod提交json数据操作

    故事前要今天,在做公司的一个项目,需要和第三方公司进行对接,需要将我们采集到的数据发送给第三方公司,按照对方提供的文......

  10. 这么优雅的Java ORM没见过吧

    Java的ORM框架有很多,但由于Java语言的限制大部分都不够优雅也不够简单,所以作者只能另辟蹊径造轮子了。照旧先......