博客園數據統計


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

於是自己寫了一個簡單的js腳本,把博客園首頁的200頁內容,共4000篇文章的發布時間、閱讀次數、推薦次數、評論次數都統計了下來。

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

然后把js生成的數據弄到excel里面做出了下面這幾張圖。

 

文章數 — 閱讀次數 分布圖

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

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

 

然后我發現有幾篇文章的閱讀數完全像出了bug一樣,動輒1w+、2w+,好吧,這種屬於小概率事件。於是我把采樣數據中閱讀數大於5400的都刪掉了(一共就83篇),然后制作了下面兩幅圖。

閱讀次數 — 發布時間 分布圖

還是有點意思的吧,呵呵。凌晨1點到早上8點前這段時間發布的文章,基本上閱讀次數都非常少。晚上7點到8點之間發布的文章的閱讀數也比較小。可能大家都是7點多吃飯。

而上午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的建議,補充三張圖

 

歡迎關注我的微信公眾號:老虎的小窩
微信公眾號 老虎的小窩


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM