爬虫的具体操作流程是,打开 StackOverflow 主页,在 questions 页面下选择按 vote 排序,爬取前 20000 页,每页将问题数量设置为 50,共 100 万条,实际上用数据库去重后只有 999654 条问答信息。 他分别对votes、answers、views进行了分析,咱们来看一下他的分析结果吧。 一、votes 分析降序排列了 votes 数,生成折线图
votes 数的连续分布情况:
如果以 100 为分界线的话,会得到这样的一个饼图。
再来看看底层的数据。
可见 votes 小于 20 的,数量高达 84m。看看总体的比例吧。 二、answer 分析 降序排列了 answers 数,生成折线图。很明显 3k 之后的 answers 数基本上就小于 20 了。
answer数的连续分布情况。
具体数据。
大于 30 的确实少的可怜,看看总体情况。 三、views 分析 降序排列了 views 数,生成折线图。
views 数的连续分布情况。 具体数据。
大部分问答的 views 数还是集中在 20000 以内。还是得看看总体分布。 四、综合分析再看看 votes,views,answers 三者的散点图对应情况。votes - viewsvotes - answersviews - answersviews-answers散点图 总的来说,这三者对应关系类似于一个金字塔。三个图基本上都是左下角靠近原点的区域被填满,也就是说绝对大部分的问题的 votes,answers 和 views 都是属于最下层的。高质量活跃的问题是处于金字塔顶端的。三者的最高数好像也没特别明显的对应关系,且三者的最高数都不是同一个问题。 根据所有问题的 tags 提取出总量前 200 的关键词(前 50 条如下),java 排在第 2 名。 ('c#', 94614),('java', 93244),('javascript', 76722),('android', 69321),('python', 62502),('c++', 58173),('php', 42596),('ios', 37773),('jquery', 37405),('.net', 36180),('html', 28536),('css', 26174),('c', 24699),('objective-c', 23253),('iphone', 22171),('ruby-on-rails', 20143),('sql', 19171),('asp.net', 18060),('mysql', 17559),('ruby', 16397),('r', 15670),('git', 13139),('linux', 13080),('asp.net-mvc', 12857),('angularjs', 12606),('sql-server', 12473),('node.js', 12212),('django', 11576),('arrays', 11006),('algorithm', 10959),('wpf', 10631),('performance', 10619),('xcode', 10613),('string', 10426),('windows', 10132),('eclipse', 10117),('scala', 9942),('regex', 9685),('multithreading', 9601),('json', 9266),('swift', 8950),('c++11', 8939),('haskell', 8823),('osx', 8159),('visual-studio', 8140),('html5', 7627),('database', 7567),('xml', 7478),('spring', 7464),('unit-testing', 7253),('bash', 6825) 这样看好像不太直观,所以就把它根据词频生成了词云。传送门地址:https://github.com/chenjiandongx/stackoverflow-spider 作者:chenjiandongx |
|