通过HtmlAgilityPack解析表标记出错
问题描述:
我有一个表格的网页,我想获得所有的行,但是当我下载它时,我得到一个奇怪的表,有一个<tr>
和许多</tr>
,所以我可以不解析它。我能做什么?通过HtmlAgilityPack解析表标记出错
我的代码:
WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(link);
while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
string htmlDoc = wb.DocumentText;
doc.LoadHtml(htmlDoc);
nodesHtml = doc.DocumentNode.SelectNodes("//tr");
而是要得到nodesHtml
所有行,我得到的只是一排。奇怪的是,在像FF这样的真正浏览器中,html标签看起来不错,但是当下载页面时 - html出错了。
答
这不顺心由于该网页是不符合相当的HTML,
看看由w3c's validator给出的结果,你会 看到有堆tr
和td
有关闭问题。
我的建议是要么通过Tidy运行HTML或玩弄HTMLAgilityPack的 解析设置。
您能否向我们提供您正在获取的HTML代码(或者至少是该页面)供我们测试? –
我添加了链接 –