猜猜博客园最热门的标签
<div id="cnblogs_post_body">每天翻开技术博客,映入眼帘的是各种技术的关键字,五花八门,今天突然想知道最近比较热门的技术,谷歌搜了半天,得不出所以然。干脆自己用C#写了个小程序,用来统计博客园排名前1000的园主最爱的tag,从某方面也能反映出当下(最近几年)热议的话题吧。本文利用了HtmlAgilityPack库,这是一个将Html转换为Xml,并可使用XPath语法来查询的HTML解析库。小程序运行大概5分钟左右(公司网速最近太慢,不然还会更快一点)就将排名前1000名博客的tag统计出来了,解析起来相对于Winista.Htmlparser.Net而言还是比较快速高效的。
一、获取博客园排名前1000的博客地址
首页有一个按积分排行页面链接,上面列出了博客园前3000名:
http://www.cnblogs.com/AllBloggers.aspx
http://pic002.cnblogs.com/images/2012/28631/2012080210413028.png
其中博客路径与rss的Xpath应该是:".//a[@href]" ,同时rss的链接后面都带有rss.aspx,于是我把它过滤了,剩下的即是排名前3000的博客地址
<div class="cnblogs_code"> int Max = 1000; HtmlWeb webClient = new HtmlWeb(); HtmlDocument doc = webClient.Load("http://www.cnblogs.com/AllBloggers.aspx"); HtmlNodeCollection hrefList = doc.DocumentNode.SelectNodes(".//a[@href]"); List<string> urllist=new List<string>(); if (hrefList != null) { foreach (HtmlNode href in hrefList) { HtmlAttribute att = href.Attributes["href"]; if(!att.Value.Contains("rss.aspx")) { urllist.Add(att.Value); } if (urllist.Count >= Max) break; } }
页:
[1]