我正在編寫一個c#控制檯應用程序來從外部html網頁檢索表格信息。爲表格數據解析嚴重格式化的HTML
Example web page:(chessnuts.org)
我想提取所有<td>
記錄data
,match
,opponent
,result
等 - 23日在上面的例子中的鏈接行。
我沒有控制這個網頁,不幸的是沒有很好的格式化,所以我試過的選項,如HtmlAgilityPack
和XML
解析只是失敗。我也嘗試了一些對正則表達式的,但我這方面的知識是極其惡劣,一個例子下面我想:
這將返回所有<tr>
的完整列表(多條記錄,我不需要)但是我無法從中獲取數據。
UPDATE
這裏是我嘗試使用HtmlAgilityPack
的例子:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
foreach (HtmlNode table in doc.DocumentNode.SelectNodes("//table"))
{
foreach (HtmlNode row in table.SelectNodes("tr"))
{
foreach (HtmlNode cell in row.SelectNodes("td"))
{
Console.WriteLine(cell.InnerText);
}
}
}
試着看一下[這太問題(http://stackoverflow.com/questions/14987878/html-agility-pack-parse-table) – Icemanind 2014-10-02 22:32:45
就像我提到的我的問題,使用Html Agility Pack失敗,因爲該頁面缺少關閉元標記。 – 2014-10-02 22:34:16
如果它對meta標籤有一個特定的有限問題,爲什麼不做一些html.Replace(「畸形的meta」,「更好的meta」)並修復它們? – MatthewMartin 2014-10-02 22:37:30