그래, 라이브 웹 사이트를 쿼리하여 테이블에서 데이터를 가져와야 할 때이 HTML 테이블을 DataTable에 넣은 다음이 데이터를 사용해야합니다. 지금까지 HTML 애자일 팩과 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