php爬虫简单入门

前些日子有点空闲就做了一个简单的爬虫,爬取了知乎50W条数据,因为知乎有测试流量过大,导致经常有验证码,本人图片验证码没有研究所以每次都是手动输入,有兴趣的小伙伴可以做个自动识别验证码就可以无限采取了

爬虫使用了curl

public function zhihu($url){
    $param = false;
    $header= false;
    $postUrl = $url;
    $curlPost = $param;
    $ch = curl_init();//初始化curl
    if(substr($url,0,5)=='https'){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);  // 从证书中检查SSL加密算法
    }
    curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($ch, CURLOPT_HEADER,0);//设置header
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    if($header){
        curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    }
    // curl_setopt($ch, CURLINFO_HEADER_OUT, true);//获取httpheader所有数据
    if($curlPost){
          curl_setopt($ch, CURLOPT_POST,1);//post提交方式
          curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
     }
    $data = curl_exec($ch);//运行curl
    curl_close($ch);
    return $data;
}

在爬取的时候感觉单线程较慢并且知乎有验证码,所以就做了一个php多线程爬取

多线程详细解释网址:https://blog.csdn.net/xyf_1995/article/details/81092094

在数据录入数据库的时候做了一个唯一索引,防止用户重复,但是TP自带的插入语法碰到唯一索引会报错,而不是忽略

然后我百度查找最后对insert进行了修改

insert修改详细代码:https://blog.csdn.net/xyf_1995/article/details/81092760

以上工作做好后就可以愉快的采集了

采集的数据没有时间作分析,就不展示了

有兴趣的小伙伴可以下载继续往下做和优化

扫描二维码关注公众号,回复: 2773117 查看本文章

代码下载地址:https://download.csdn.net/download/xyf_1995/10553428

猜你喜欢

转载自blog.csdn.net/xyf_1995/article/details/81129984
今日推荐