博客園數據統計

今天突發奇想,想統計一下博客園上的這麼多文章的閱讀次數和發佈時間之間有沒有什麼關係。node

因而本身寫了一個簡單的js腳本,把博客園首頁的200頁內容,共4000篇文章的發佈時間、閱讀次數、推薦次數、評論次數都統計了下來。程序員

(不知道有沒有給服務器帶來負擔,抱歉啊,管理員童鞋)服務器

而後把js生成的數據弄到excel裏面作出了下面這幾張圖。微信

 

文章數 — 閱讀次數 分佈圖post

這張圖的橫軸是文章的閱讀次數,步進100,縱軸是計算出來的文章的篇數。可見,絕大部分文章的閱讀次數都在300 ~ 1600之間。this

話說此前我發過4篇文章了,閱讀次數分別是 100+、400+、500+、2400+, 唉—— 說多了都是淚啊~~spa

 

而後我發現有幾篇文章的閱讀數徹底像出了bug同樣,動輒1w+、2w+,好吧,這種屬於小几率事件。因而我把採樣數據中閱讀數大於5400的都刪掉了(一共就83篇),而後製做了下面兩幅圖。翻譯

閱讀次數 — 發佈時間 分佈圖3d

仍是有點意思的吧,呵呵。凌晨1點到早上8點前這段時間發佈的文章,基本上閱讀次數都很是少。晚上7點到8點之間發佈的文章的閱讀數也比較小。可能你們都是7點多吃飯。excel

而上午9點到11點之間發佈的文章被閱讀可能性最高。還有晚上11到12點之間發佈的文章被閱讀的可能性也很高(是否是說明程序員都是夜貓子啊,呵呵)

 

評論次數、推薦次數 — 發佈時間 分佈圖

這個圖和上面那個相似,並且這兩幅圖裏面的數據也基本都是正相關的。

 

總結經驗,之後我都改成上午9點到10點之間發,偷笑....

 

===============分割線呀嘛分割線==================================

好吧,我把代碼也貼出來,唉,寫得醜一點你們別笑啊

 1     var pageNum = 1;
 2     function enumPageNum () {
 3         if(pageNum > 200) return;           //一共就200頁
 4         $('.p_' + pageNum).eq(0).click();   //跳轉到這個頁面
 5         console.log('change to page ' + pageNum);
 6         checkStatus();
 7     }
 8 
 9     function checkStatus () {
10         //跳轉後等200毫秒再去檢查是否是加載好了,判斷標準是翻頁控件上的樣式加了current這個類
11         setTimeout(function(){
12             if($('.p_' + pageNum).eq(0).hasClass('current')){
13                 var l = $('.post_item').length;
14                 console.log('get data of page ' + pageNum + '  length: ' + l);
15                 if(l < 20) {checkStatus(); return;}     //我發現有時候就算那個current類加上了,可是其實數據沒加載出來
16                 processData();
17 
18                 pageNum++;
19                 enumPageNum();
20             }else{
21                 console.log('wait page ' + pageNum);
22                 checkStatus()
23             }
24         }, 200);
25     }
26 
27     var res = [];
28     function processData () {
29         $('.post_item').each(function(){
30             var diggNum = $(this).find('.diggnum').text();
31             var cmtNum = $(this).find('.article_comment > a').text().split('(')[1];
32                 cmtNum = cmtNum.substring(0, cmtNum.length - 1);
33             var viewNum = $(this).find('.article_view > a').text().split('(')[1];
34                 viewNum = viewNum.substring(0, viewNum.length - 1);
35             var postTime = $(this).find('.post_item_foot')[0].childNodes[2].nodeValue.split('於')[1];
36                 postTime = postTime.split(' ')[1] + ' ' + postTime.split(' ')[2];
37             var postDate = postTime.split(' ')[0];
38                 postTime = postTime.split(' ')[1];
39 
40             res.push({
41                 pn: pageNum,
42                 dn: diggNum,
43                 cn: cmtNum,
44                 vn: viewNum,
45                 pd: postDate,
46                 pt: postTime
47             });
48         });
49     }
50 
51     enumPageNum();
52 
53     for(var i=0;i<res.length;i++){
54         console.log(res[i].pn + ',' + res[i].dn + ',' + res[i].cn + ',' + res[i].vn + ',' + res[i].pd + ',' + res[i].pt);
55     }

我把代碼貼出來了,你們看看就好,別都本身跑着玩啊,一下子把博客園的服務器跑掛了,管理員同窗要生氣了。委屈...

 

=================分割線呀嘛分割線========================================

這篇寫着玩的文章竟然上了首頁的「最多評論」,留圖做記念

說實話,如今感受挺囧的。其實個人博客前面幾篇文章,我都是很認真很認真地寫的,並且全部的數據和過程都是我親自實踐過的。

但是除了一片我翻譯的文章閱讀數量比較大,其餘幾篇都基本沒什麼人看,這篇文章更離譜,徹底是我寫着玩的,沒想到引來這麼多回復。

固然,你們回覆我確定是高興了,只不過,前面幾篇文章爲何沒什麼人關注呢?

我想多半仍是本身的技術或者表達有不少不足吧。還需努力提升啊。

 

==================分割線呀嘛分割線=========================================

根據liumingyu的建議,補充三張圖

 

歡迎關注個人微信公衆號:老虎的小窩
微信公衆號 老虎的小窩

相關文章
相關標籤/搜索