php爬虫简单入门

本文介绍了一种使用PHP和curl实现的知乎数据爬虫方法,包括处理验证码和多线程爬取的技术细节,并解决了数据库唯一索引冲突的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前些日子有点空闲就做了一个简单的爬虫,爬取了知乎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.youkuaiyun.com/xyf_1995/article/details/81092094

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

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

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

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

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

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

代码下载地址:https://download.youkuaiyun.com/download/xyf_1995/10553428

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值