首页 > 资讯 > 关键词  > 编程语言最新资讯  > 正文

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

2015-08-04 11:48 · 稿源: epooll.com

看了不少朋友圈里推荐的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)互相有关联(关注了和关注者)的用户。

爬虫程序设计:

因为知乎需要登录才能获取到关注者页面,所以从chrome登录之后把cookie拷贝下来给curl程序模拟登录。

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

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

这里插个题外话,经过测试,我的8核的Macbook,跑16进程的速度最快,而16核的Linux服务器,居然是跑8进程最快,这点有点让我莫名其妙了,不过既然测试出最后进程数,就按照最后设置就好啦。

1、用户索引进程组先以一个用户为起点,抓取这个用户的关注了和关注者,然后合并入库,因为是多进程,所以当有两个进程在处理同一个用户入库的时候就会出现重复的用户,所以数据库用户名字段一定要建立仅有索引,当然也可以用redis这些第三方缓存来保证原子性,这个就见仁见智了。

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

2、用户详情进程组按照时间正序,拿到较早入库的用户抓取详情,并且把更新时间更新为当前时间,这样就可以变成一个死循环,程序可以无休止的跑,不断的循环更新用户信息。

程序稳定运行到第二天,突然没有新数据了,检查了一下发现知乎改规则了,不知是为了防我,还是碰巧,反正给我返回的数据是这样的

首先感觉就是胡乱给我输出数据让我采集不到,换了IP、模拟伪装了些数据,都没用,突然感觉这个很熟悉,会不会是gzip?抱着怀疑的态度,试了试gzip,首先当然是告诉知乎不要给我gzip压缩过的数据

把 “Accept-Encoding: gzip,deflate\r\n”; 改成 “Accept-Encoding:deflate\r\n”; 去掉了 gzip,然并卵!

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

$content = substr($content, 10);

$content = gzinflate($content));

这里我真想说,PHP真的是全世界较好的语言,就两个函数,就彻底解决了问题,程序又欢快的跑起来了。

在匹配内容的时候,知乎的细心也是给了我无数的帮助,例如我要分清用户性别:

哈哈开玩笑的拉,其实是样式里面有 icon-profile-female 和 icon-profile-male ^_^

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

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

有了这些信息,其实就可以做一些别人开头闭口就乱吹一通的大数据分析拉

最常见的当然是:

1、性别分布

2、地域分布

3、职业分布

4、每个职业的男女比例

当然,按照关注人数、浏览人数、提问数、回答数等排序,看看人民都在关注什么,民生、社会、地理、政治,整个互联网都尽收眼底拉。。

也许,你还可以把头像拿来分析,用开源的验黄程序,把色情的筛选出来,然后去拯救东莞? ^_^

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

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

下面是利用这些数据做出来的一些有趣的图表,实时图表数据可以去 https://www.epooll.com/zhihu/ 上看

举报

  • 相关推荐
  • 从打造陪聊爆款到重写游戏底层逻辑,百万用户AI团队押注“AI游戏2.0”

    白鲸编辑部对元象的了解始于他们在2024年推出的 AI 角色扮演出海应用「Saylo」。 这款产品并没有赶上品类爆发的最佳红利期,却凭借自研模型和精细的创作者运营,在不到1年的时间内做到了300万全球用户,一度登上中国台湾、中国香港娱乐免费榜榜首。 这支团队的背景同样引发了我们的关注。元象成立于2021年初,创始人姚星曾任腾讯副总裁,主导组建腾讯人工智能实验室

  • 发膜哪个牌子比较好用?口碑最好用的四款发膜推荐

    本文针对烫染受损发质推荐几款优质发膜。黛熙梦萦焗修护发膜含智能修护蛋白,能自主修复损伤,使用后头发柔顺度提升超50%;卡诗玻尿酸水光发膜源自知名品牌,使用后告别打结烦恼;KACAhair小分子发膜能深入发芯内部深层滋养;艾慕芭蛋白补水发膜富含高浓水解蛋白,轻松渗透补充流失角蛋白。这几款发膜都能有效改善干枯毛躁问题,让秀发重现柔顺光泽。选择时需根据个人发质与需求,长期使用效果更佳。

  • 为什么空调26摄氏度比较好 医生:避免“冷中暑”

    近日,一位男子在单位加班出门后出现头晕目眩,恶心想吐”的症状。 该男子表示,当时空调温度开的很低,外面又特别的热。 经过检查,医生告诉他他患上了冷中暑”。 医生解释称:从低温空调房到室外高温环境,从酷热的室外直接扎进”空调间,或出汗后立即洗冷水澡,食用大量冷饮等,人体不能迅速适应温差变化,就可能出现冷中暑”。 温差越大,冷中暑”出现的

  • 骑出31亿棵树!雅迪亿万用户FUN开去骑,开创全民低碳新纪录!

    雅迪717全球骑行节以"FUN开去骑"为主题,通过"音乐+骑行+社交"的互动模式,结合三丽鸥联名新品发布,打造绿色出行超级IP。活动数据显示:雅迪用户累计骑行里程超3856亿公里,减少碳排放638亿千克。现场王鹤棣等明星助阵,三丽鸥联名款电动车全球首发,融合萌系美学与科技内核。雅迪冠能S系列发起独库公路极限挑战,展现长续航技术实力。作为连续8年全球销量第一的电动车品牌,雅迪持续推动绿色出行理念,引领行业潮流。

  • 家用路由器与工业路由器差异全解析,哪个牌子的工业路由器比较好?

    本文对比分析了工业路由器与家用路由器的核心差异。工业路由器专为恶劣环境设计,具备-40℃至75℃的宽温工作范围、IP65以上防护等级、抗电磁干扰等特性,支持复杂网络协议和安全标准,适用于制造、能源等关键领域。家用路由器则注重易用性和性价比,适用于稳定家庭环境,功能以满足日常上网需求为主。工业路由器在可靠性、稳定性和安全性方面要求更高,价格也相对昂贵,而家用路由器维护简单、价格亲民。蒲公英4G工业路由器凭借卓越性能成为企业优选,支持远程办公、设备监控等工业物联网应用,打破地域限制,助力企业数字化转型。

  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • 00后小伙暴走6天只为忘掉前女友 采野果、喝溪水充饥

    近日,余杭消防救援大队分指挥中心接到110转警,一起独居男子失联事件牵动众人的心。 接警后,消防力量立即启动响应机制协同各部门展开搜寻。通过调取监控,最后出现在监控画面中的身影,显示他走进了荒无人烟的深山。 各部门迅速调整搜寻策略,先后出动110余人次救援力量。炎炎烈日下,救援人员不顾高温酷暑,穿梭在密林之中,甚至出动了警犬、无人机,对深山�

  • 男子偷山地车只为圆看海梦 :猛骑23天 1000公里后被抓

    法网恢恢疏而不漏!近日,一男子盗窃了一辆山地车,一口气”骑行1000多公里被抓的事件引起了网友广泛热议。 媒体报道,该事发生在安徽淮北。这名30岁男子酷爱骑行,为圆看海梦,他盗窃了一辆山地车后,从安徽淮北骑行到山东潍坊,历时23天,一路向北骑行1000多公里,途经徐州、临沂、枣庄等。 据民警介绍,最终该男子在潍坊被抓获,目前因涉嫌盗窃被行政拘留。 �

  • 抖音:“抖音会议”App是诈骗软件 会直接控制用户手机

    北京市公安局民警近日发出重要提醒,市面上流传的“抖音会议”与“银联会议”两款软件实为诈骗工具,能够通过远程操控手段盗取用户手机中的存款,并在作案后自动清除涉诈痕迹,以逃避追踪。 民警详细介绍,一旦这两款软件被下载至用户手机,其共享屏幕甚至远程操控功能便会被激活。当用户被诱导输入会议码时,手机屏幕会瞬间黑屏,此时诈骗分子便可肆意操作用

  • 梦回iPhone 7时代!iPhone 17 Air电池曝光:2800mAh

    快科技7月19日消息,iPhone 17 Air电池容量仅2800mAh,比2016年iPhone 7 Plus的2900mAh还小,主要因机身厚度仅5.5mm成为苹果最薄机型。为弥补续航,苹果配备自研C1基带芯片降低功耗,并计划推出MagSafe外接电池配件。配置方面采用120Hz直屏、A19处理器、12GB内存、4800万单摄,预装iOS 26。值得注意的是,超薄设计使其仅支持eSIM技术,取消了物理SIM卡槽。