使用HtmlAgilityPack XPath 表达式抓取博客园数据
2011-12-01 13:23
621 查看
使用HtmlAgilityPack XPath表达式来抓取博客园数据
使用WebClient 下载数据,HtmlAgilityPack XPath表达式解析数据,并绑定到Repeater控件
View Code
HtmlAgilityPack.dll文件下载地址:
51cto下载
http://down.51cto.com/data/500199
使用WebClient 下载数据,HtmlAgilityPack XPath表达式解析数据,并绑定到Repeater控件
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using S1; using System.Net; using System.IO; using System.Text; using HtmlAgilityPack; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string page = string.Empty; if (!IsPostBack) { WebClient wc = new WebClient(); string address = "http://www.cnblogs.com"; if (!string.IsNullOrEmpty(Request.QueryString["p"])) { address += "/" + Request.QueryString["p"];//分页,p=p2,p=p3 } Stream stream = wc.OpenRead(address); StreamReader sr = new StreamReader(stream, Encoding.UTF8); string html = sr.ReadToEnd(); //实例化HtmlAgilityPack.HtmlDocument对象 HtmlDocument doc = new HtmlDocument(); //载入HTML doc.LoadHtml(html); //根据HTML节点NODE的ID获取节点 HtmlNode navNode = doc.GetElementbyId("post_list"); //div[2]表示文章链接a位于post_list里面第3个div节点中 HtmlNodeCollection list = navNode.SelectNodes("//div[2]/h3/a"); //根据XPATH来索引节点 Cnblogs cnblogs = null; IList<Cnblogs> cnlist = new List<Cnblogs>(); foreach (HtmlNode node in list) { cnblogs = new Cnblogs(); //获取文章链接地址 cnblogs.url = node.Attributes["href"].Value.ToString(); //获取文章标题 cnblogs.title = node.InnerText; cnlist.Add(cnblogs); } HtmlNodeCollection list1 = navNode.SelectNodes("//div[2]/div/a"); for (int i = 0; i < cnlist.Count; i++) { cnlist[i].author = list1[i].InnerText; cnlist[i].authorUrl = list1[i].Attributes["href"].Value.ToString(); cnlist[i].updatetime = list1[i].NextSibling.InnerText.Replace("发布于", "").Trim(); } this.Repeater1.DataSource = cnlist; this.Repeater1.DataBind(); } } public class Cnblogs { public string title { get; set; } public string url { get; set; } public string author { get; set; } public string authorUrl { get; set; } public string updatetime { get; set; } } }
HtmlAgilityPack.dll文件下载地址:
51cto下载
http://down.51cto.com/data/500199
相关文章推荐
- 使用HtmlAgilityPack XPath 表达式抓取博客园数据的实现代码
- 使用HtmlAgilityPack XPath 表达式抓取博客园数据的实现代码
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
- 使用HtmlAgilityPack抓取网页数据
- 使用HtmlAgilityPack实现简单的博客园主页内容抓取(2014-03-31)
- 使用HtmlAgilityPack抓取网页数据
- 【.NET】使用HtmlAgilityPack抓取网页数据
- NET 使用HtmlAgilityPack抓取网页数据
- C#使用HtmlAgilityPack抓取糗事百科内容实例
- HtmlAgilityPack使用——XPath注意事项
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
- 使用正则表达式抓取博客园列表数据
- 利用HtmlAgilityPack抓取园子里面的数据
- 使用HttpWebRequest和HtmlAgilityPack抓取网页(拒绝乱码,拒绝正则表达式)
- 经验总结21--抓取WEB数据,汇率,HtmlAgilityPack