我有一个带有表格的网页,我想要获取所有行,但是当我下载它时,我得到一个奇怪的表格,其中一个<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出错了。
答案 0 :(得分:1)
这是错误的,因为页面的HTML非常不合规,
看看w3c's validator给出的结果,你会看到
看到tr
和td
有大量关闭问题。
我的建议是通过Tidy运行HTML或使用HTMLAgilityPack 解析设置。