从知乎看「霍金去世」带来的巨大轰动

前言

大概今天中午的时候我从别人口中得知霍金去世了,这真真切切的是一个大新闻。当时我正在写代码,但是又迫不及待的想去看看大家是怎么看待、讨论以及对霍金的人生是如何评价的。

于是我像往常一样打开知乎,搜索「霍金」话题想看看是否有人已经提问过了。但是结果却让我大吃一惊:霍金话题彻底被刷版,手动向下滑(不断的加载下一页数据)很长时间仍然看不到底(全部是霍金去世的提问)。这几乎是我见过的最壮观的热门事件期间知乎重复提问的数量了,于是好奇心驱使我想知道他们究竟提了多少相关问题……

一如既往差劲的知乎技术团队

霍金去世新闻刚出来的时候,「霍金」这个话题还是能访问的并且能正常获取问题列表。然后知乎突然的将「霍金」这个话题(Topic)重定向到「霍金去世」的专题(Special)上了。

但是搞笑的是,这个专题页面是为手机客户端准备的仅适配移动端的页面。这导致 PC 上重定向到这个专题页面的时候觉得莫名其妙,就好像一下子从桌面版网页跳转到了手机网页。

然后这个手机网页还时不时的故障,不是 500 错误就是 404 错误。页面底部的「更多精彩想法」持续了很长时间的 404 跳转结果。如果直接调用 API 或者禁用重定向到目前为止「霍金」话题下的问题仍然获取不到(只有前几页的新问题),所以我只能使用正常的「物理学」话题获取问题列表了。

知乎为了凑这个热门新闻,一直保持着在最热门的时间段内 BUG 一定要存在的原则,真的是挺厉害的。

用代码得出结果

require 'rest-client'
require 'json'

z_c0 = '<Your z_c0 cookie>'
headers = {
    :Cookie => "z_c0=#{z_c0}",
    'User-Agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}

$hit_list = []
$is_end = false
YTD_TIMESTAMP = 1520870400
REG = /(去世)|(离世)|(逝世)|(与世长辞)|(死亡)|(之死)|(死了)|(死去)|(去死)/

(1..9999).each do |page_no|
  url = "https://www.zhihu.com/api/v4/topics/19599021/feeds/timeline_question?limit=20&offset=#{(page_no - 1) * 20}"
  resp = RestClient.get(url, headers = headers)
  json = JSON.parse(resp.body)
  list = json['data']
  list.each {|q| $is_end = q['target']['created'].to_i < YTD_TIMESTAMP}
      .select {|q| q['target']['title'].to_s.include? '霍金'}
      .select {|q| q['target']['title'].to_s =~ REG}
      .each {|q| $hit_list.push({:title => q['target']['title'], :id => q['target']['id']})}
  break if $is_end
  sleep 0.1
end

puts "Total:#{$hit_list.length}"
$hit_list.each {|q|
  puts "#{q[:title]},https://www.zhihu.com/question/#{q[:id]}"
}

输出结果会贴在最后面,但是现在可以明确的告诉你,截止目前数量达到了 417 个!!!

这还不是重点,重点是我上面抓取的话题并不是「霍金」这个话题!霍金话题的 id 是 19599021,我的代码中的是 19556950,是「物理学」的话题 id!(原因什么的上面有说)

也就是说在「物理学」话题下靠关键字匹配霍金去世相关词汇,居然都能找出四百多个重复的问题,简直恐怖。

未统计到的内容

为什么要强调物理学话题而不是霍金话题?因为还有很多很多的「如何看待霍金去世」的问题只存在于霍金话题下,不在物理学话题下。再然后,你们可以看到我的关键字匹配就是一个简单的正则,其中包含了:

去世,离世,逝世,与世长辞,死亡,之死,死了,死去,去死

这么几个词汇,这几个词汇是我从相关话题下翻了三页肉眼统计出来的相关用词(所以别问我为什么连“去死”这钟词都有,我也搞不懂某些提问人的小学语文是如何学的)。也就是说,还有许多的不同的表达去世的词汇没有算在内。

结合这两个,如果是在霍金话题下 + 包含有去世语义的所有标题,其数量一定要比四百高出许多许多。

这暴露了两个现象:

一是知乎现有的策略完全无法有效禁止重复提问的产生,如果说这成百上千的重复问题都能忍的话,那干脆不要限制重复提问好了,反正知乎上绝大多数问题都是无人问津的。

二是霍金去世实在是太大太大太大的新闻了,这比之前皮几万还要热门得多(我不是有意拿霍金去世和戏子绯闻做比较,只不过当时皮几万事件的时候知乎也是产生了大量的重复提问)。如此多的人主动提问看来是特别关心这个话题。

好事还是坏事?

当然,霍金离世肯定是坏事,不过我这里的想说的是知乎上的重复提问现象是好事还是坏事。我认为,是好事。为什么呢?

还记得有人常说「将军坟前无人问,戏子家事天下知」吗?这句话常用来批评娱乐明星的家事或者无关紧要的小事都能带来网络社会层面的各种轰动,是一种极其讽刺的现象。对,我说的就是微博这个平台,所以我从来没有新浪微博:)

霍金的去世带来的如此大的轰动,证明了这句话的“错误性”,证明了我国主要的网络群体的思维层面并没有那么肤浅。

最新更新

随着时间的推移,知乎霍金话题数据总算正常了,所以代码变成了基于霍金话题的数据。

最新的结果:重复提问数量 700+

结束语

由于数据量太大,贴在文章中造成更新困难。我在知乎相关回答有贴出输出内容。

去感受一下 700+ 重复提问的知乎吧~