C# 解析網頁HTML用HtmlAgilityPack插件

引用HtmlAgilityPack插件,能夠用HtmlAgilityPack類,例子以下:html

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教程, 再來嘗試...node

XPath 表達式 描述
nodename 選取此節點的全部子節點。
/ 從根節點選取。
// 從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。
. 選取當前節點。
.. 選取當前節點的父節點。
@ 選取屬性。
相關文章
相關標籤/搜索