HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(m);
var json = Common.Http_Get(m);
var nodes = doc.DocumentNode.SelectNodes("//p");
foreach (HtmlNode node in nodes)
HtmlNode thumbnail = HtmlNode.CreateNode(node.OuterHtml);
var thumbnailstr = thumbnail.InnerText.Trim();
var img_node = thumbnail.SelectSingleNode("//img");
var img = img_node.Attributes["src"].Value;
var link_node = thumbnail.SelectSingleNode("//a[@class='ql-link']");
var link = link_node.Attributes["href"].Value;
}catch{}
注意:记得XPath表达式要写对,否则会报错或查询不到某元素
/ {从根节点选取}
// {选择元素后代元素,必须在后面跟上nodeName}
. {选取当前节点}
… {选取当前节点的父节点}
@ {选取属性节点(@是attribute的缩写)}
/root/child[3] {选取root元素的第三个child子元素,注意,这和数组下标不一样,从1开始计数}
//child[@attr] {选取所有具有属性attr的child元素}
body/p[position()=4] {这个XPath表达式将选取body子元素中第4个p元素,注意这里从1开始计数}
//div[@class=‘ql-link’] {获取某个class属性为ql-link 的div 层 }
HtmlAgilityPack是.net下的一个HTML解析类库。支持用XPath来解析HTML。简单的来说,在页面上查询元素速度更快,更准。 HtmlWeb web = new HtmlWeb();//创建Web请求 HtmlAgilityPack.HtmlDocument doc = web.Load(m);//加载页面的链接 var json = Common.Http_Get(m);//获取网页源代码 //获取某个节点的集合,这里获取出现 p 标签 的