爬蟲的具體操作流程是,打開 StackOverflow 主頁,在 questions 頁面下選擇按 vote 排序,爬取前 20000 頁,每頁將問題數(shù)量設(shè)置為 50,共 100 萬條,實際上用數(shù)據(jù)庫去重后只有 999654 條問答信息。 他分別對votes、answers、views進(jìn)行了分析,咱們來看一下他的分析結(jié)果吧。 一、votes 分析降序排列了 votes 數(shù),生成折線圖
votes 數(shù)的連續(xù)分布情況:
如果以 100 為分界線的話,會得到這樣的一個餅圖。
再來看看底層的數(shù)據(jù)。
可見 votes 小于 20 的,數(shù)量高達(dá) 84m。看看總體的比例吧。 二、answer 分析 降序排列了 answers 數(shù),生成折線圖。很明顯 3k 之后的 answers 數(shù)基本上就小于 20 了。
answer數(shù)的連續(xù)分布情況。
具體數(shù)據(jù)。
大于 30 的確實少的可憐,看看總體情況。 三、views 分析 降序排列了 views 數(shù),生成折線圖。
views 數(shù)的連續(xù)分布情況。 具體數(shù)據(jù)。
大部分問答的 views 數(shù)還是集中在 20000 以內(nèi)。還是得看看總體分布。 四、綜合分析再看看 votes,views,answers 三者的散點圖對應(yīng)情況。votes - viewsvotes - answersviews - answersviews-answers散點圖 總的來說,這三者對應(yīng)關(guān)系類似于一個金字塔。三個圖基本上都是左下角靠近原點的區(qū)域被填滿,也就是說絕對大部分的問題的 votes,answers 和 views 都是屬于最下層的。高質(zhì)量活躍的問題是處于金字塔頂端的。三者的最高數(shù)好像也沒特別明顯的對應(yīng)關(guān)系,且三者的最高數(shù)都不是同一個問題。 根據(jù)所有問題的 tags 提取出總量前 200 的關(guān)鍵詞(前 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) 這樣看好像不太直觀,所以就把它根據(jù)詞頻生成了詞云。傳送門地址:https://github.com/chenjiandongx/stackoverflow-spider 作者:chenjiandongx |
|