通过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出错了。

这里是链接:http://www.lre.com/test/searchresultx.asp?id=19

+1

您能否向我们提供您正在获取的HTML代码(或者至少是该页面)供我们测试? –

+0

我添加了链接 –

这不顺心由于该网页是不符合相当的HTML,
看看由w3c's validator给出的结果,你会 看到有堆trtd有关闭问题。

我的建议是要么通过Tidy运行HTML或玩弄HTMLAgilityPack的 解析设置。