加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

我一天“偷了”知乎一百万用户 只为证明PHP是最好的语言

发布时间:2018-05-02 06:28:41 所属栏目:教程 来源:epooll.com
导读:看了不少伴侣圈里保举的Python爬虫文章,都认为太小儿科,处理赏罚内容原来就是PHP的刚强,Python独一的甜头预计也就生成的Linux自带,和Perl一样,这点认为挺不足意思的Linux,照旧Mac老实,生成就自带了Python、Perl、PHP、Ruby,虽然我也很厌恶接头一门说话

看了不少伴侣圈里保举的Python爬虫文章,都认为太小儿科,处理赏罚内容原来就是PHP的刚强,Python独一的甜头预计也就生成的Linux自带,和Perl一样,这点认为挺不足意思的Linux,照旧Mac老实,生成就自带了Python、Perl、PHP、Ruby,虽然我也很厌恶接头一门说话的优劣,每门说话存在就必然有它的原理,横竖PHP是全天下最好用的说话,各人都懂的。

前几天较量火的是一小我私人用C#写了一个多线程爬虫措施,抓取了QQ空间3000万QQ用户,个中有300万用户是有QQ号、昵称、空间名称等信息的,也就是说,有详情也就300万,跑了两周,这没什么,为了证明PHP是全天下最好的说话,我用PHP写了一个多历程爬虫措施,只用了一天时刻,就抓了知乎100万用户,今朝跑到第8圈(depth=8)相互有关联(存眷了和存眷者)的用户。

编程说话 PHP说话 知乎用户

编程说话 PHP说话 知乎用户

编程说话 PHP说话 知乎用户

爬虫措施计划:

由于知乎必要登录才气获取到存眷者页面,以是从chrome登录之后把cookie拷贝下来给curl措施模仿登录。

行使两大独立轮回历程组(用户索引历程组、用户详情历程组),用的是php的pcntl扩展,封装了一个很是好用的类,行使起来和golang的携程也差不多了。

下面是用户详情的截图,用户索引代码相同:

编程说话 PHP说话 知乎用户

这里插个题外话,颠末测试,我的8核的Macbook,跑16历程的速率最快,而16核的Linux处事器,居然是跑8历程最快,这点有点让我莫名其妙了,不外既然测试出最后历程数,就凭证最后配置就好啦。

1、用户索引历程组先以一个用户为出发点,抓取这个用户的存眷了和存眷者,然后归并入库,由于是多历程,以是当有两个历程在处理赏罚统一个用户入库的时辰就会呈现一再的用户,以是数据库用户名字段必然要成立独一索引,虽然也可以用redis这些第三方缓存来担保原子性,这个就见仁见智了。

通过步调一之后,我们就获得下面的用户列表:

编程说话 PHP说话 知乎用户

2、用户详情历程组凭证时刻正序,拿到最先入库的用户抓取详情,而且把更新时刻更新为当前时刻,这样就可以酿成一个死轮回,措施可以无休止的跑,不绝的轮回更新用户信息。

措施不变运行到第二天,溘然没有新数据了,搜查了一下发明知乎改法则了,不知是为了防我,照旧可巧,横竖给我返回的数据是这样的

编程说话 PHP说话 知乎用户

第一感受就是胡乱给我输出数据让我收罗不到,换了IP、模仿伪装了些数据,都没用,溘然感受这个很认识,会不会是gzip?抱着猜疑的立场,试了试gzip,起首虽然是报见告乎不要给我gzip压缩过的数据

把 “Accept-Encoding: gzip,deflatern”; 改成 “Accept-Encoding:deflatern”; 去掉了 gzip,然并卵!

看来知乎是逼迫要给我gzip压缩数据了,既然云云,那我就解压呗,查了一下php解压gzip,发明就一个函数gzinflate,于是把获取到得内容加上:

$content = substr($content, 10);

$content = gzinflate($content));

这里我真想说,PHP真的是全天下最好的说话,就两个函数,就彻底办理了题目,措施又欢畅的跑起来了。

在匹配内容的时辰,知乎的仔细也是给了我无数的辅佐,譬喻我要分清用户性别:

编程说话 PHP说话 知乎用户

哈哈恶作剧的拉,着实是样式内里有 icon-profile-female 和 icon-profile-male ^_^

我蛋疼的抓了它那么多用户,到底有什么用呢?

着实没什么用,我就是闲的蛋疼 ^_^

有了这些信息,着实就可以做一些别人开头缄口就乱吹一通的大数据说明拉

最常见的虽然是:

1、性别漫衍

2、区域漫衍

3、职业漫衍

4、每个职业的男女比例

虽然,凭证存眷人数、赏识人数、提问数、答复数等排序,看看人民都在存眷什么,民生、社会、地理、政治,整个互联网都一清二楚拉。。

大概,你还可以把头像拿来说明,用开源的验黄措施,把色情的筛选出来,然后去挽救东莞? ^_^

然后,你还可以看看那些大学出来的人,最后都干了什么。

有了这些数据,是不是可以打开脑洞 ^_^

下面是操作这些数据做出来的一些风趣的图表,及时图表数据可以去 http://www.epooll.com/zhihu/ 上看

编程说话 PHP说话 知乎用户

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读