C# 解析網頁HTML用HtmlAgilityPack外掛

TA遠方發表於2019-07-24

引用HtmlAgilityPack外掛,可以用HtmlAgilityPack類,例子如下:

var doc = new HtmlAgilityPack.HtmlDocument();
// 網頁原始碼,如有缺少,就補充完整.
if (html.IndexOf("<html>") >= 0 && html.IndexOf("</html>") > 0) doc.LoadHtml(html);
else
{
     if (html.IndexOf("<body>") >= 0 && html.IndexOf("</body>") > 0) doc.LoadHtml("<html>" + html + "</html>");
     else doc.LoadHtml("<html><body>" + html + "</body></html>");
}
// 獲得解析文件根節點
var docNode = doc.DocumentNode;
// 使用XPath語法表示式,Select 查詢出一個符合條件的節點
var title = docNode.SelectSingleNode("//div[@id='divContent']//h2[@class='left_title']");
// title 標題所在的節點,判斷是否存在
if (title == null) return;
// 如果存在,就繼續處理...

複製程式碼

SelectSingleNode("使用XPath語法"), 不會用的, 請先看下XPath教程, 再來嘗試...

XPath 表示式描述
nodename選取此節點的所有子節點。
/從根節點選取。
//從匹配選擇的當前節點選擇文件中的節點,而不考慮它們的位置。
.選取當前節點。
..選取當前節點的父節點。
@選取屬性。


相關文章