【问题标题】:Parsing a table tag by HtmlAgilityPack goes wrong通过 HtmlAgilityPack 解析表格标签出错
【发布时间】:2012-08-28 23:58:23
【问题描述】:

我有一个带有表格的网页,我想获取所有行,但是当我下载它时,我得到一个奇怪的表格,有一个 <tr> 和许多 </tr>,所以我无法解析它.我能做什么?

我的代码:

  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

【问题讨论】:

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

标签: c# html html-table html-agility-pack


【解决方案1】:

由于页面的 HTML 非常不合规,这会出错,
看看w3c's validator 给出的结果,你会 看到有很多 trtd 存在关闭问题。

我的建议是通过Tidy 运行 HTML 或使用 HTMLAgilityPack 解析设置。

【讨论】:

    猜你喜欢
    • 2012-09-27
    • 2012-12-21
    • 2016-11-20
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多