先扯两句

前几天突然想到,轮子哥的知乎名称并不是"轮子哥",那搜一下会怎样呢?
试着搜了一下"轮子哥",结果厉害了,原来,轮子哥已经成为一个话题了。。。

然后看到这么一个问题:写脚本给轮子哥关注的所有女用户发条私信说我想认识你会怎样?

这个问题很有想法,知乎交(Y)友(P)指日可待。我就默默的收藏了,这两天有空实现了一下。

我把轮子哥的关注者和关注的人都抓取了一遍,周五晚上跑的代码,关注者648,793条,关注的人2,472条。
别问我为什么现在才写文章,因为我懒。。。

刚才又看了下,关注者已经变成了650,401人,关注的人2,480人。两天多的时间轮子哥又涨了1608个粉,不得不说,厉害了。
在抓取关注人的时候还出了点问题,抓完数据再去重之后(因为抓取的这段时间又有人关注了轮子哥 - -!),我的数据总是比实际人数少七八百或者一千多,试了三次都这样,看来看去感觉我的代码没问题,可是知乎应该也没问题,那问题出在哪呢?(如果有大神知道,请指教)后来,我干脆就在抓取完之后判断有没有数据重复,如果有数据重复就重新抓取,暴力简单有效。。

我的想法是这样,先抓取用户,再抓取用户动态,找到最近一周有动态的妹子,对头像进行颜值打分排序,然后取前面高分的妹子进行私信。(希望不要被指责肤浅的只看脸。。头像有胸的话我也会看的。。)

这个想法其实我觉得还蛮不错的,但是到后面数据都抓下来之后发现有严重bug。。

男女比例

先放两个男女比例图:

{
  "option": {
    "title": {
      "text": "关注者男女比例",
      "x": "center"
    },
    "series": [
      {
        "type": "pie",
        "data": [
          {
            "value": 157361,"name": "未知"
          },
          {
            "value": 149009,"name": "女"
          },
          {
            "value": 342423,"name": "男"
          }
        ]
      }
    ]
  }
}
{
  "option": {
    "title": {
      "text": "关注的人男女比例",
      "x": "center"
    },
    "series": [
      {
        "type": "pie",
        "data": [
          {
            "value": 87,"name": "未知"
          },
          {
            "value": 1503,"name": "女"
          },
          {
            "value": 882,"name": "男"
          }
        ]
      }
    ]
  }
}

呃,看来轮子哥为了持续为关注者们输出一些有价值的爆照,实在是关注了不少妹子。辛苦辛苦。

其中在2,472个关注的人中,互相关注的有1,552人,占比62.78%。如图:

{
  "option": {
    "series": [{
        "type": "pie",
        "data": [
          {"value": 1552,"name": "互相关注"},
          {"value": 920,"name": "其余"}
        ]
    }]
  }
}

竟然还有40%的人这么高冷,不觉得激发了我的兴趣,剩下的40%都是什么样的big man。
先看下互相关注的人的男女比例。

{
  "option": {
    "series": [{
        "type": "pie",
        "data": [
          {"value": 50,"name": "未知"},
          {"value": 847,"name": "女"},
          {"value": 655,"name": "男"}
        ]
    }]
  }
}

这个看起来还是挺平均的,并没有什么特别的地方。略有失望,没有一点点的惊喜。

看下剩下的接近40%的非互相关注的男女比例。

{
  "option": {
    "series": [{
        "type": "pie",
        "data": [
          {"value": 37,"name": "未知"},
          {"value": 656,"name": "女"},
          {"value": 227,"name": "男"}
        ]
    }]
  }
}

哇,这个就hin有特点了,看来妹子们更高冷一些,,汉子们,我们怂了。

关注度分析

接下来分析下关注度。同时还抓取了每个用户的关注者数量,回答数和文章数。所以,就通过关注者数量对用户做一个简单的分级:

由于对这高冷的40%的群体比较好奇,所以先上不diao轮子哥的这部分人的统计:

{
  "option": {
    "title": {
        "text": "关注的人(非互相关注)关注度",
        "x": "left"
      },
    "series": [{
        "type": "pie",
        "radius":"70%",
        "data": [
          {"value": 0,"name": "普通用户"},
          {"value": 219,"name": "初级用户"},
          {"value": 176,"name": "中级用户"},
          {"value": 201,"name": "高级用户"},
          {"value": 161,"name": "小V用户"},
          {"value": 90,"name": "中V用户"},
          {"value": 73,"name": "大V用户"}
        ]
    }]
  }
}

非互相关注的人中,关注度一万人以上有163人,占比17.72%,关注度3000以上的有324,占比35.22%。
如果说,关注度一万才能算是正经的V。。那这些非互相关注的好像也很一般嘛(这句话说的好虚,在我心中,1000以上的就是大V了)。。

看下互相关注的人的统计:

{
  "option": {
    "title": {
          "text": "关注的人(互相关注)关注度",
          "x": "left"
        },
    "series": [{
        "type": "pie",
        "data": [
          {"value": 0,"name": "普通用户"},
          {"value": 589,"name": "初级用户"},
          {"value": 254,"name": "中级用户"},
          {"value": 206,"name": "高级用户"},
          {"value": 225,"name": "小V用户"},
          {"value": 151,"name": "中V用户"},
          {"value": 125,"name": "大V用户"}
        ]
    }]
  }
}

互相关注的人中,关注度一万人以上有276人,占比17.78%,关注度3000以上有501,占比32.28%。呃,和刚才的数据惊人的相似啊。。这个。。。什么高冷不高冷的貌似没什么区别。。

在所有关注的人当中,关注度最高的为818,404。

其实真正的大V是不能够通过一个简单的关注者数量来衡量的,相信无所谓关注度多少,能入了轮子哥法眼的一定都是某个领域的大V(比如爆照领域)。

剩下呢,看下我们广大的轮带逛群众们的关注度如何:

{
  "option": {
      "关注者": {
            "text": "关注者的关注度",
            "x": "left"
          },
    "series": [{
        "type": "pie",
        "radius":"60%",
        "data": [
          {"value": 497847,"name": "普通用户"},
          {"value": 136366,"name": "初级用户"},
          {"value": 8257,"name": "中级用户"},
          {"value": 3480,"name": "高级用户"},
          {"value": 1762,"name": "小V用户"},
          {"value": 670,"name": "中V用户"},
          {"value": 411,"name": "大V用户"}
        ]
    }]
  }
}

我猜测各位轮带逛的阅图无数的同学们,还大都处在偶尔没事打开知乎看看图的阶段。感谢轮子哥为我们甄选了各种好图。
在所有轮带逛同学们中,关注度最高的为886,555。

活跃度分析

这两年知乎注册用户越来越多,但是不能否认的是,流失的用户也蛮多的。比如我就是我女朋友推荐玩知乎的,如今我女朋友已经不玩了,而我还会每天在知乎上学(看)习(图)和交(撩)友(妹)。

所以,又抓取了每个用户的最近的一条动态,不然,给妹子发了私信,结果可能人家这辈子都看不到呢。

先对活跃程度做一个定义:

看下所有关注者的活跃度情况:

{
  "option": {
    "series": [{
        "type": "pie",
        "data": [
          {"value": 206573,"name": "非常活跃"},
          {"value": 78911,"name": "一般活跃"},
          {"value": 147353,"name": "不活跃"},
          {"value": 210040,"name": "僵尸用户"},
          {"value": 5916,"name": "无动态"}
        ]
    }]
  }
}

非常活跃和一般活跃人数总共285,484人,占比44%。所以,理论上来讲,轮子哥直接影响的人数只有28万多人,但是这28W人能直接影响多少人呢?我汇总了一下这28万人的总关注人数:56,828,082。

也就是说,假设轮子哥回答了一个问题后这28万多人都点赞了,那么又会间接影响五千多万。当然这五千多万人当中可能会有很多僵尸粉。

我擦,不算不知道,一算吓一跳。我建议轮子哥可以开一个点赞收费业务了。数据量惊人啊。

有没有兴趣看一下,最僵的僵尸用户会是什么时候的?这其实是个对自己的设问句。。。
所以以年份为区间,统计了一下僵尸用户中的最后动态所在时间:

{
    "option": {
        "xAxis": [{
            "type": "category",
            "data": ["2015之前","2015","2016","2017"],
            "axisTick": {"alignWithLabel": true}
        }],
        "yAxis":
            [{"type": "value"}],
        "series":
            [{
                "type": "bar",
                "data": [1814,10511,34647,163068]
            }]
    }
}

其中特别有趣的是,最僵的用户是在2011-06-17 10:16:33这个时间之后再也没有新的动态。

而且,这个人的token为vczh2,而轮子哥的知乎名称叫做vczh。

这惊人的巧合到底是人性的扭曲还是道德的沦丧?请关注今晚的走进科学之真假轮子。

看一下轮子哥关注的人活跃状态:

{
  "option": {
    "series": [{
        "type": "pie",
        "data": [
          {"value": 1081,"name": "非常活跃"},
          {"value": 221,"name": "一般活跃"},
          {"value": 457,"name": "不活跃"},
          {"value": 692,"name": "僵尸用户"},
          {"value": 21,"name": "无动态"}
        ]
    }]
  }
}

这个。。轮子哥关注的人当中,也有21个无动态,那这个无动态到底是个怎么回事?有没有知乎内部员工透露一下。。

其中,僵尸用户中,僵在2017年的有496人,僵在2016年的有117人,僵在更早的,有79人。其中最僵的用户最后动态时间为2013-08-09 15:56:03。

妹子分析

好了,重点来了,我本来是想抓一下用户回答里的爆照图片,如果没有,再使用头像。但是..这个也就想想,太复杂了.. 也可能是我写不出来吧,反正写了也没什么卵用。

首先先排除默认头像。

我对64万关注者的头像进行分组,结果发现,有140,646个用户共用了2,637张图片。

WTF??为什么会有这么多的用户头像是一样的?他们的头像是怎么设置的?这些用户难道是知乎的机器人么?

全部重复的图片,可以访问该链接: 重复头像(4.4MB)。前几个图片看起来还是比较正常的,后面那些就不理解为什么会重复了。我也是通过该链接,使用我强大的肉眼识别技术,判断得出,这些头像都是可以排除的。

接下来就开始对妹子们的头像进行颜值打分,首先为了让大家对分数有个概念,先说明一点,我测试的时候使用的是阿娇的一张图片,打分是9.3分。

首先,先来看关注了轮子哥的女人,筛选出最近一周有动态的,同时没有使用上述头像的,关注轮子哥的妹子总共有54,359人。占比总关注人数8.38%。

然后抓取这五万多人的头像颜值,结果39,695是0分。。也就是说,这接近四万人上传的头像并不是人像。。唉,一定漏掉了很多女神。

除去0分外,竟然还有1分的,WTF?这得多丑?然后我再次通过强大的肉眼识别技术,发现低于5分的,都是没有价值的头像,比如表情包什么的。。

五分以下的头像可通过该链接访问: 低于五分的头像(724KB)

所以,最终还剩下14,302人。剩下妹子头像颜值分布如图:

{
    "option": {
        "xAxis": [{
            "type": "category",
            "data": ["≥10","≥9","≥8","≥7","≥6","≥5"],
            "axisTick": {"alignWithLabel": true}
        }],
        "yAxis":
            [{"type": "value"}],
        "series":
            [{
                "type": "bar",
                "data": [1,1791,4451,4002,2945,1112]
            }]
    }
}

有没有意外的发现,满分10分,竟然有一个10.5分的,我的第一反应是,代码有BUG。

然后我手动找到这个头像上传给小冰,呃。。小冰的产品经理是不是格外的喜欢胡歌啊。。。给胡歌打分这么高。

此外,9分段有1,791人,其中=9.9的有29人,≥9.5的有340人,天啊,我阿娇女神得分才9.3,这些人得多美啊。

抱着无比期待的心情,再次使用了我强大的肉眼识别技术,呃。。我表示hin失望。。同时也觉得,嗯。。我应该想到的。。各种明星头像。。

虽然,看起来都还是很养眼的,可以说是各种类型的女神都有了。不过这不符合我的预期啊,如果都是明星,那我对颜值打分还有什么意义呢?

我刚又试了下小冰,如果头像是明星的话,会在一堆啰嗦的文案中提到该明星的名字,比如这样:"扫到胡歌,幸亏帅哥颜值有10.5分,轻松把平均颜值从9.9提高到10.0"。
微软大法好。

唉,可是之前我只匹配的分数,并没有把整个文案都保存下来,我TM是不是傻,后悔。。。
于是写到这里,我又跑了一遍代码,把大于8分的头像(6,243张)又重新跑了一遍。

玩把荒野行动吃个鸡。。

md,早早的就变成了盒子。

ok,最后跑完数据后,发现有23个人和之前的分数不一致,看来小冰也有看走眼的时候。不过上下浮动也就零点几分,影响不大。

对比所有文案,发现句型是固定的那么几个,所以8分以及8分以上的头像中,明星头像共有460人,男性头像共有742人,小盆友头像共有447人,剩余的妹子头像,共有4,730人。

其中出现次数top10的明星如下:

{
    "option": {
        "xAxis": [{
            "type": "category",
            "data": ["王祖贤","张国荣","朱茵","苍井优","新垣结衣","苏菲·玛索","张柏芝","艾玛·沃特森","陈晓旭","刘亦菲"],
            "axisTick": {"alignWithLabel": true},
            "axisLabel":{"interval":0}
        }],
        "yAxis":
            [{"type": "value"}],
        "series":
            [{
                "type": "bar",
                "data": [30,24,23,19,19,12,10,10,8,8]
            }]
    }
}

不过小冰的识别不是很准确,有很多头像没有识别到。

我通过肉眼识别,感觉出现最多的应该是 刘亦菲,王祖贤,艾玛·沃特森,泰勒·斯威夫特

写到这里,感觉已经心累了,也是之前在开头提到的,我的这个方案严重bug,并不能有效的筛选到女神。
不管怎样,不能做无用功吧,我决定对这4,730人取前100个发私信(求交友),取top100是担心知乎会自动判断我进行骚扰然后禁了我的号。

如果没有禁我的号,我就隔一天再发两百个。。哈哈。

接下来跑一下轮子哥关注的妹子。

因为人数并不多,于是就取一个月内有动态的头像且不是上述重复图片的妹子,总共有1,015。占比轮子哥总关注人的41.06%,占比总女性的67.53%。

可见轮子哥关注的妹子普遍活跃度还不错。照例,跑出所有头像颜值,分布如图:

{
    "option": {
        "xAxis": [{
            "type": "category",
            "data": ["≥9","≥8","≥7","≥6","≥5","≥4"],
            "axisTick": {"alignWithLabel": true}
        }],
        "yAxis":
            [{"type": "value"}],
        "series":
            [{
                "type": "bar",
                "data": [86,187,135,63,15,1]
            }]
    }
}

为什么没有统计4分以下呢,因为除去0分,最低分4.8分,平均分8分。分值略高啊。

不能激动太早,照例跑一下明星比例。其中,明星头像7人,小盆友头像26人,男生头像52人,未识别的妹子头像403人。其中403人中,有254人颜值大于8分。

嗯。。。轮子哥看上的女人果然不一样。

所以,所以,希望被我骚扰的top100和top254的妹子们不要举报我,毕竟你们都那么美丽,想必你们一定也都很善良。

有一点尴尬。。提示我发私信太快,好多发失败了,可是我觉得就两行代码,也没打log。

所以又多骚扰了100人,,不过我是真心觉得你们的头像好好看,如有打扰,实在抱歉,可以私信我加我微信,我红包送上,哈哈。

让我意外的是,好多人回复我。。。好方。。。还有好多大V。感谢大V们百忙之中回复我哈。

最后,上一张我的私信记录。

私信记录

相关链接

知乎: 写脚本给轮子哥关注的所有女用户发条私信说我想认识你会怎样?