嘗試使用htmlagiltypack加載html時出錯

.net c# html-agility-pack

我正在嘗試運行此代碼

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(path);
var div = htmlDoc.DocumentNode.Descendants("div");
foreach (var x in div)
{
    Console.WriteLine(x.Attributes["class"].Value);
}

當我在htmlDoc.LoadHtml(path);調試此代碼時htmlDoc.LoadHtml(path);我收到了這個錯誤

找到'd:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'的源代碼。校驗和:MD5 {4e 14 d3 b d5 30 6e 2c bf 84 ab 8a 96 82 4a 8f}文件'd:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'不存在。查看'd:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'的腳本文檔...查看'd:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'的項目。在項目中找不到該文件。查看目錄'C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ crt \ src \'...查看目錄'C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ crt \ src \ vccorlib \'...查看目錄'C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \'...查看目錄'C:\ Program Files(x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ atl \'...查看目錄'C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include'...調試源文件設置對於活動解決方案,指示調試器不會要求用戶找到該文件:d:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs。調試器找不到源文件'd:\ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'。

一般承認的答案

您嘗試從URI加載html文檔是不正確的。

Methof HtmlDocument.LoadHtml從提供的字符串加載html,因此它的參數是html文本本身,而不是URI。

要從提供的URI加載html,您需要以下內容:

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlWeb().Load(path);

另請注意,您可以在此處獲取NullReferenceException

x.Attributes["class"].Value

因為你在訪問它的值之前沒有檢查是否有class屬性( x.Attributes["class"] != null )。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因