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

我一天“偷了”知乎一百万用户 只为证明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、每个职业的男女比例

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

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

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

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

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

  • 相关推荐
  • 大家在看
  • 编程语言最新排名:Java最受欢迎、JS用户最多

    IDE工具开发商JetBrains基于2万名开发者,对编程语言的最新情况进行了统计描摹。就受欢迎程度而言,Java高居第一位,但在使用人数上,JavaScript则名列榜首。欢迎程度的统计方法是,让参与的

  • 报告:JavaScript为最常用整体编程语言 Python超过Java

    在过去的 12 个月中,Python在使用的编程语言列表中已经超过了Java,它也是被研究最多的语言。报告称,在过去的 12 个月里,30%的受访者开始或继续学习Python,甚至比去年还要多。

  • 读懂生命的“语言” 有孚专有云为基因行业提速

    基因图谱被称为"上帝用以创造生命的语言"。世界各国的科学家们都在倾尽全力读懂“生命的语言”,破解每一个未知基因的奥秘。读懂“生命的语言”,对于提高公众健康水平,降低沉重的医疗费用具有非常重要的意义。读懂生命的"语言",实现科学的价值基因技术听起来很神秘,但其实早已经在多个领域中得到应用。例如基因测序技术能够用于疾病的预防、疾病的诊断、指导个体化用药,还能够帮助病毒基因研究所研发病毒诊断试剂,监控病毒疫

  • 用php源码搭建二维码加密支付平台

    今天给大家介绍的项目-"用php源码搭建二维码加密支付平台",可以说,有一定的技术门槛,有一定的壁垒,因为需要搭建网站并且运营。正是因为有一定的门槛,需要学习和准备一些东西,才能挡住大多数用户的进入,才能长久的赚取利润。这些技术门槛,和需要准备的一些东西,我今天会详细的,手把手的教大家,如果你肯学习,并且有一定的网络基础,我相信可以很快突破难点,搭建成功。一旦搭建成功,运用一些推广的手段,后期

  • 华为全球最大旗舰店上海开业 可提供近10门语言服务

    今日上午10点8分,上海南京东路华为全球最大旗舰店开业,有粉丝表示自己8点多就已过来排队。据悉,该旗舰店坐落于 “中华商业第一街”南京东路的南京大楼,具体位置为上海市南京东路 233 号,占地面积超过了 5000 平方米。

  • 携手体育赛事,英孚教育成为成都2021年大运会语言服务类供应商

    近日,成都 2021 年第 31 届世界大学生夏季运动会品牌发布推介会(上海站)举行。在会上,英孚教育正式签约成为 2021 年第 31 届世界大学生夏季运动会语言服务类供应商。据介绍,在 2021 年成都大运会筹备和比赛期间,英孚教育企业与政府解决方案将为大运会筹委会的工作人员、志愿者以及相关政府机构工作人员提供一系列语言培训服务,包括定制化在线课程、志愿者培训、在线测评等。在签约活动现场,英孚教育企业与政府解决方案中国

  • 风变编程:两会丁磊提议将编程纳入考试,编程学习是否已是大势所趋?

    最近,关于编程教育是否纳入教学的讨论再次在网络上发酵,引发了全民大讨论。在5月21日举行的第十三届全国人民代表大会第三次会议上,全国政协委员、网易CEO丁磊在《关于稳步推动编程教育纳入我国基础教学体系,着力培养数字化人才的提案》中建议:加快区域试点,形成从高中向小学、从东部向全国的推广格局;创新教学模式,形成中国特色的少儿编程课程体系;教企共建少儿编程学习资源库,提供实践平台;将少儿编程纳入学业水平考试

  • 知乎是一面镜子

    ​热榜是内容平台的标配基本工具,头条、B站、微信、微博、知乎都有自己的热榜,各有不同。舆情指向标与内容催化剂是热搜两大属性,反映了一段时间用户关切点,人们可以从中了解时下最热门的话题与内容是什么。

  • 我们看到一些知乎大V 开始拍视频了

    【TechWeb】最近几个月,不少用户反映,越来越多自己关注的以图文为主要创作形式的大V都开始做视频了。图文作者增加视频内容正成为一种标配。TechWeb注意到,很早就在知乎进行图文创作的@大梦Power最近也开始创作视频内容,目前共发布5个视频,粉丝达到13万。此外,@老爸测评、@普外科曾医生、@庄明浩等知乎大V也都转型开启视频创作。内容视频化的浪潮在2020年奔涌得尤其猛烈,不做视频的自媒体已经越来越少。事实上,图文创作者?

  • 网文的未来属于知乎吗?

    网文作者们会去哪里?这可能是 2020 年最值得被关注的行业话题之一,理由也非常直观:227 事件和 55 断更节,让人们看到了网文行业的迷茫与不安,也让许多人第一次看到了隐藏在海平面下的冰山全貌——原来“网文”不是一个小众爱好,而是巨大到涵盖影视、动漫、文学IP等关键词的完整生态?

  • 知乎B站无所谓左右

    “小而美与发展壮大无法共存。”这是B站董事长陈睿在B站 11 周年活动上谈及“破圈”话题时给出的解释。

  • Java已被超越?Python当道,风变编程带你化身编程高手

    在程序员中,一直流传着“Python除了不会生孩子,什么都会”的传说。作为人工智能时代最重要的脚本语言之一,Python现在已经逐步占领统计学、机器学习、爬虫、图形处理、软件和游戏开发、人工智能等多个领域,且都有突出表现。可以说,在众多编程语言中,python如今已经杀出重围,从容超越Java和Javascript,化身程序员必备的编程利器之一。目前,国内外许多公司都已使用Python,如:YouTube、豆瓣、知乎、Google、百度、腾讯、美?

  • 放大权威声音 知乎成为政务传播新阵地

    6 月 18 日,知乎独家联合人民网舆情数据中心首次对外发布“政务、媒体机构号影响力排行榜( 5 月)”。榜单参考知乎平台近 30 个数据指标,对机构号从内容发布数量、传播效果、互动频率、专业程度等四个维度进行综合评估。首期榜单中“我们的太空”“健康中国”“莫高窟”分别以89.64、84.09、77. 93 位列政务影响力排行榜前列,“新华社”、“人民网”和“封面新闻”摘得媒体影响力排行榜前三甲。据悉,该榜单后续将于每月初发布

  • 包装出来的「国标」等级考试,编程猫们收割了谁?

    ​一位一线儿童编程教育工作者称,细数市场十余种等级标准与考试,鱼龙混杂、质量参差不齐,一些感觉不是在推进青少年编程教育,而是在抢占编程教育市场制高点。

  • 极客晨星讲解:火爆的少儿编程有着怎样的发展史?

    未来的世界是人工智能的时代,这个已经成为了不争的事实。而国内近几年来对少儿编程的关注也说明了不少家长也希望孩子能够学习少儿编程,从而适应未来的人工智能。那么少儿编程到底是什么发展起来的呢?国内少儿编程培训的现状又是什么样的?下面极客晨星就为您来详细讲解一下。2000 年以色列编程兴起; 2012 年日本改课推广编程; 2013 年奥巴马呼吁全国学编程; 2014 年英国把编程纳入必修课; 2015 年美国政府出资 40 亿强化中小学?

  • Python取代Excel?风变编程带你了解如何更好地学Python!

    当前最简单、最流行的编程语言是什么?是Python。最近,谷歌公布的编程语言流行指数显示,Python目前仍然是全球范围内最受欢迎的技术语言。而得益于简洁、易读、易维护等特点,Python可广泛运用于数据分析、人工智能、爬虫、运维、测试、图像识别、机器学习等领域,在日常数据分析方面,甚至已有“Python取代Excel”的说法。那么,Python是否真的有这么牛?接下来,风变编程就带你了解一波。“Python已经取代了Excel”今年3月,日?

  • 封堵邮件漏洞 苹果敦促iPhone用户尽快安装iOS 13.5更新

    苹果方面已经要求iPhone用户尽快更新iOS 13. 5 安全更新,因为在这个版本中,修复了不少安全上的漏洞。有同样需求的还有德国联邦安全局(BSI),其也敦促iPhone用户尽快安装苹果发布的最新安全更新以解决邮件应用中存在的一个关键漏洞。

  • 极客晨星实力撩姐,叶一茜大呼:我想给儿子报编程课!

    6 月 20 日晚上,明星辣妈&全能女神叶一茜淘宝直播带货,极力推荐极客晨星编程课。直播当晚,人气爆棚,引起家长共鸣,回响强烈,掀起了一波购课热潮。就连叶一茜也大呼:我想给儿子报编程课!极客晨星实力撩姐,它究竟有什么魅力呢?“早就想给我家儿子报名编程课了,没找到合适的机构,今天推荐一家在线少儿编程——极客晨星。”直播一开始,森蝶妈妈叶一茜就在直播间力推极客晨星。同时,她也谈到了作为一名家长的烦恼。“线下?

  • 张朝阳首次直播推荐亲测好物,少儿编程这个“知识点”亮了

    6 月 8 日晚 7 点,搜狐公司董事局主席兼CEO、搜狐视频CEO张朝阳将首次直播带货。届时,在搜狐视频APP“关注流”中搜索“张朝阳”,即可进入直播间看直播,秒杀亲选限量好物。“想带个货,顺便聊聊生活”。据了解,此次张朝阳在《Charles的好物分享》直播中推荐的物品,都是他生活中长期使用,觉得还不错的东西,同时也是个人的生活方式的一次展示。他强调这次直播带货是“抛砖引玉”,“希望未来带动更多名人来搜狐视频直播。”直

  • 编程猫CEO李天驰谈人工智能如何赋能教育

    【TechWeb】6月29日消息,编程猫创始人兼CEO李天驰受邀参加人民网联合全国高等学校计算机教育研究会举办的“共创智慧教育新生态”在线研讨会,就后疫情时代智慧教育建设分享了自己的观点。在谈及智慧教育如何落地、人工智能如何赋能教育方面,李天驰表示编程猫在普及人工智能教育以及编程教育上,发现在线教育在全国中小学落地,遇到的最大问题是缺少好的老师,为了解决在人工智能教育以及编程教育领域师资不匹配的问题,编程猫以

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议