我正在尝试下载网页并解析它。我需要到达html文档的每个节点。所以我使用WebClient进行下载,效果很好。然后我使用以下代码段来解析文档:
WebClient client = new WebClient();
Stream data = client.OpenRead("http://web.cs.hacettepe.edu.tr/~bil339/");
StreamReader reader = new StreamReader(data);
string xml = reader.ReadToEnd();
data.Close();
reader.Close();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.loadXml(xml);
在最后一行,程序等待一段时间,然后崩溃。它说HTML代码中存在错误,这不是预期的,不应该在这里,等等。 有什么建议来解决这个问题其他解析HTML代码的技术是受欢迎的(当然是在C#中。)
答案 0 :(得分:7)
使用HTMLAgilityPack解析HTML。格式良好的HTML不是XML,因此无法解析。例如,它缺少所有XML文件所需的<?xml version="1.0" encoding="UTF-8"?>
前导码。 HTML Agility Pack更加宽容。