手机版

使用HtmlAgilityPack XPath表达式抓取博客园数据的实现代码

时间:2021-10-12 来源:互联网 编辑:宝哥软件园 浏览:

网前端代码复制代码代码如下: %@页面语言=' c# ' AutoEventWireup=' true ' CodeFile=' Default。aspx。cs ' Inherits=' _ Default ' %!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML L1-过渡。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head runat=' server ' title/title/head body form ID=' form 1 ' runat=' server ' div table cell padding=' 1 ' cell spacing=' 1 ' bgcolor=' # 1标题运输署/运输署发布作者运输署/运输署发布时间/TD/tr/header template item template tr bgcolor=' # ffffff ' TD align=' left ' a href=' % # Eval(' URL ')% ' target=' _ blank " % # Eval(' title ')%/a/TD a href=' % # Eval(' AuthorURl ')% ' target=' _ blank " % # Eval(' author ')" % a/TD TD % # Eval(' updatetime ')%/TD/item template/asp3360 repeater/table/div/后台代码:复制代码代码如下:使用系统;使用系统。集合。通用;使用系统Linq .使用系统网络.使用系统网络。用户界面使用系统。网络控件;使用S1;使用系统。净值;使用系统IO;使用系统。文字;使用HtmlAgilityPack公共部分类_默认:系统网络。ui。页面{受保护的无效页面_加载(对象发送方,EventArgs e) { string page=string .空的;if(!IsPostBack){ WebClient WC=new WebClient();字符串地址=' http://www。cn博客。com ';if(!字符串IsNullOrEmpty(请求. QueryString['p'])) { address='/'请求查询字符串[' p '];//分页,p=p2,p=p3 }流流=wc .OpenRead(地址);StreamReader sr=新的StreamReader(流,编码. UTF8);string html=Sr . ReadToEnd();//实例化HtmlAgilityPack .超文本标记语言文档对象HTMl文档=新建HTMl文档();//载入超文本标记语言文档.加载HTMl(HTMl);//根据超文本标记语言节点结节的身份获取节点HtmlNode navNode=doc .GetElementbyId(' post _ list ');//div[2]表示文章链接a位于帖子列表里面第3个差异节点中HtmlNodeCollection list=navNode .选择节点('//div[2]/H3/a ');//根据XPATH来索引节点cn blogs cn blogs=null listnblogs cn list=new listnlogs();foreach(列表中的HtmlNode节点){ cn blogs=new Cnlogs();//获取文章链接地址cnblogs.url=节点。属性[' href ']。价值。ToString();//获取文章标题cnblogs.title=node .InnerTextcnlist .add(cn博客);} HTMlNode collection list 1=NavNode .选择节点('//div[2]/div/a ');for(int I=0;我知道了。计数;i ) { cnlist[i].作者=列表1[i].InnerTextcnlist[i].authorUrl=list1[i].属性[' href ']。价值。ToString();cnlist[i].更新时间=列表1[I]。下一个兄弟。内部文本。替换('发布于', '').trim();}这个重复1。DataSource=cnlist这个中继器1。DataBind();} }公共类Cnblogs { public string title { get设置;}公共字符串url { get设置;}公共字符串作者{获取设置;}公共字符串authorUrl { get设置;}公共字符串updatetime { get设置;} } }

版权声明:使用HtmlAgilityPack XPath表达式抓取博客园数据的实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。