好的,所以我需要查詢一個實時網站從表中獲取數據,將這個HTML表格放入一個DataTable中,然後使用這些數據。到目前爲止,我已經設法使用Html Agility Pack和XPath來訪問我需要的表中的每一行,但我知道必須有一種方法將它解析爲DataTable。 (C#)我目前使用的代碼是:從HTML表格獲取數據到數據表
string htmlCode = "";
using (WebClient client = new WebClient())
{
htmlCode = client.DownloadString("http://www.website.com");
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlCode);
//My attempt at LINQ to solve the issue (not sure where to go from here)
var myTable = doc.DocumentNode
.Descendants("table")
.Where(t =>t.Attributes["summary"].Value == "Table One")
.FirstOrDefault();
//Finds all the odd rows (which are the ones I actually need but would prefer a
//DataTable containing all the rows!
foreach (HtmlNode cell in doc.DocumentNode.SelectNodes("//tr[@class='odd']/td"))
{
string test = cell.InnerText;
//Have not gone further than this yet!
}
網站上的HTML表格,我查詢看起來像這樣:
<table summary="Table One">
<tbody>
<tr class="odd">
<td>Some Text</td>
<td>Some Value</td>
</tr>
<tr class="even">
<td>Some Text1</td>
<td>Some Value1</td>
</tr>
<tr class="odd">
<td>Some Text2</td>
<td>Some Value2</td>
</tr>
<tr class="even">
<td>Some Text3</td>
<td>Some Value3</td>
</tr>
<tr class="odd">
<td>Some Text4</td>
<td>Some Value4</td>
</tr>
</tbody>
</table>
我不知道它是否是更好/更容易使用LINQ + HAP或XPath + HAP來獲得所需的結果,我嘗試以有限的成功嘗試,你可能會看到。這是我第一次製作一個程序來查詢一個網站,甚至以任何方式與一個網站進行交互,所以我目前很不確定!感謝您提前提供任何幫助:)
對此有幫助嗎? http://weblogs.asp.net/grantbarrington/archive/2009/10/15/screen-scraping-in-c.aspx – iwayneo