我正在尝试运行此代码
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);
中调试此代码时出现此错误
找到源代码 'D:\ SVN_CHECKOUT \ htmlagilitypack \干线\ HtmlAgilityPack \ HtmlDocument.cs'。 校验和:MD5 {4e 14 d3 b d5 30 6e 2c bf 84 ab 8a 96 82 4a 8f} 文件 D:\ SVN_CHECKOUT \ htmlagilitypack \中继线\ HtmlAgilityPack \ HtmlDocument.cs' 不存在。查看脚本文档 'D:\ SVN_CHECKOUT \ htmlagilitypack \干线\ HtmlAgilityPack \ HtmlDocument.cs' ... 在项目中寻找 'D:\ SVN_CHECKOUT \ htmlagilitypack \干线\ HtmlAgilityPack \ HtmlDocument.cs'。 在项目中找不到该文件。查看目录'C:\ Program 文件(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 \干线\ HtmlAgilityPack \ HtmlDocument.cs。 调试器找不到源文件 D:\ SVN_CHECKOUT \ htmlagilitypack \中继线\ HtmlAgilityPack \ HtmlDocument.cs'。
答案 0 :(得分:1)
您尝试从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
)。