首页 > 站长资讯中心 > 站长运营 > php爬虫:百万级别知乎用户数据爬取与分析

php爬虫:百万级别知乎用户数据爬取与分析

本文系维启网络老纪原创分享。老纪自07年一直从事互联网IDC行业,如果您对云服务器,云数据库,集群架构,安全防护,攻击防护,解决方案等遇到问题,可以随时和我们交流。维启网络又是阿里云授权代理商,新老用户购买阿里云都可以享受新开,升级,续费政策,还提供1对1技术服务。【点击免费咨询客服】
发布时间:2016-08-13

  代码托管地址:https://github.com/hhqcontinue/zhihuSpider

  文/Hector

  这次抓取了110万的用户数据,数据分析结果如下:

  

PHP爬虫 数据抓取 数据分析 爬虫抓取数据

 

  开发前的准备

  安装linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu;

  安装PHP5.6或以上版本;

  安装curl、pcntl扩展。

  使用PHP的curl扩展抓取页面数据

  PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库。

  本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能访问。当我们在浏览器的页面中点击一个用户头像链接进入用户个人中心页面的时候,之所以能够看到用户的信息,是因为在点击链接的时候,浏览器帮你将本地的cookie带上一齐提交到新的页面,所以你就能进入到用户的个人中心页面。因此实现访问个人页面之前需要先获得用户的cookie信息,然后在每次curl请求的时候带上cookie信息。在获取cookie信息方面,我是用了自己的cookie,在页面中可以看到自己的cookie信息:

  

PHP爬虫 数据抓取 数据分析 爬虫抓取数据

 

  一个个地复制,以"__utma=?;__utmb=?;"这样的形式组成一个cookie字符串。接下来就可以使用该cookie字符串来发送请求。

  初始的示例:

    $url = 'http://www.zhihu.com/people/mora-hu/about'; 
//此处mora-hu代表用户ID $ch = curl_init($url);
//初始化会话 curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIE, $this->config_arr['user_cookie']);
//设置请求COOKIE curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
return $result; //抓取的结果

上一篇:上一篇:广告屏蔽越来越流行 这到底是好事还是坏事 下一篇:下一篇:有木丫:从赠礼攻略切入的导购网站

最新文章


手机: 15988871576 微信同号
邮箱:537058898@qq.com
阿里云授权代理商_13年代理经验
热销:云服务器、数据库、企业邮箱、三级等保、DDOS防护、IPV6、云建站、短信业务、中间件等云产品
×
您好,微信扫一扫咨询更低优惠折扣,免费领取阿里云优惠券大礼包等优惠活动。
手机/微信:15988871576


微信:w15988868
×

免费送优惠券
加微信/打电话

15988871576

电话:点击拨打

微信:bbhi123

在线咨询