【原】得心應手小工具開發——初步統計部落格園首頁博文的回複率

來源:互聯網
上載者:User
【開發動機】

經常會習慣性的開啟部落格園的首頁,看一些精彩的技術文章,這裡的技術氛圍非常不錯,大家寫博文的熱情也一直感染著我。

今天中午時突然有一個想法,統計一下部落格園首頁的這些博文的回複率吧,順便練練手。由於是中午休息一個來小時的東西,所以只是作了一個大體的功能實現,沒有作太多修飾和輸入驗證等內容。

【開發實現】

實現的過程也非常簡單。

一、建立一個winform項目,畫一個簡單的表單,拖幾個控制項上來。

“統計多少個分頁”的意思是想要統計的部落格園首頁的分頁數。

二、實現思路:

1、構造一個list存入欲統計的分頁URL

2、對每個URL分別擷取HTML原始碼,然後通過字串的檢索、定位、剝離再檢索的方式取到評論數和閱讀數,作為索引值對存入Dictionary<>.

3、對Dictionary<>中的資料進行統計,拼接字串 並顯示到TextBox.

三、代碼部分

        Dictionary<int, int> commentAndRead = new Dictionary<int, int>();        private int totalcomment;        private int totalread;        private void tongji_Click(object sender, EventArgs e)        {            //有多少個分頁就構造出多少個url            int pagecount = Convert.ToInt32(this.txtpage.Text);            List<string> pageurls = new List<string>();                        for(int i=1;i<=pagecount;i++)            {                if(i==1)                {                    string url = @"http://www.cnblogs.com/index.html";                    pageurls.Add(url);                }                else                {                    string url = @"http://www.cnblogs.com/" + "p" + i;                    pageurls.Add(url);                }                            }            //按url去讀取HTML代碼            foreach(var url in pageurls)            {                string strHTML = "";                                WebClient wc = new WebClient();                #region 由於公司裡訪問外網要通過代理,所以要先簡單配置一下Proxy 伺服器,直接上網的話可以注掉這段                System.Net.WebProxy oWebProxy = new System.Net.WebProxy("172.16.154.100", 8080);                oWebProxy.UseDefaultCredentials = true;                wc.Proxy = oWebProxy;                #endregion                 wc.Encoding = Encoding.UTF8; //字元編碼                strHTML = wc.DownloadString(url);                                //檢索HTML中評論與閱讀的量                htmldispose(strHTML);                                          }            //統計,拼接字串,輸出            foreach(var c in commentAndRead)            {                totalread += c.Key;                totalcomment += c.Value;            }            StringBuilder sb = new StringBuilder();            sb.AppendFormat("共檢索{0}頁,共{1}篇博文 \r\n ",this.txtpage.Text,commentAndRead.Count.ToString());            sb.AppendLine("閱讀量:"+totalread);            sb.AppendLine("評論量:" + totalcomment);            sb.AppendLine("回複率:" + ((Convert.ToDouble(totalcomment) / Convert.ToDouble(totalread))*100).ToString("0.00") + "%");            this.textBox2.Text = sb.ToString();        }        private void htmldispose(string html)        {            int commentstart = html.IndexOf("評論(<span id=");            if(commentstart!=-1)            {                int commentend = html.IndexOf("</span>)</a></span> <span class=");                int comment = Convert.ToInt32(html.Substring(commentstart + 37, commentend - commentstart - 37));                string htmlCut = html.Substring(commentend);                int readstart = htmlCut.IndexOf("閱讀(<span id=");                int readend = htmlCut.IndexOf("</span>)</a></span></div>");                int read = Convert.ToInt32(htmlCut.Substring(readstart + 32, readend - readstart - 32));                try                {                    commentAndRead.Add(read, comment);                }                catch                {                    // 有相同數量的閱讀量的博文存在,跳過                }                                string htmlretain = htmlCut.Substring(readend);                htmldispose(htmlretain);            }            else            {                return;            }                        }
【工具示範】

【總結】

通過統計,部落格園首頁的博文的回複率大約為千分之五左右,個人認為不是很高,希望大家還是多多回複啊,你的回複就是博主推出更多原創的動力啊!

 

作者:Tony zhao 歡迎訪問:找與淘網

本文出處:http://www.cnblogs.com/ytaozhao    本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.