【发布时间】:2014-03-08 22:50:48
【问题描述】:
我想从 id = statsTable 的表中提取所有元素,并希望我可以将所有数据读入 csv。
这是我目前所拥有的:
// Create a request for the URL.
WebRequest request = WebRequest.Create("http://www.pgatour.com/stats/stat.120.html");
Console.WriteLine("Requesting data from: http://www.pgatour.com/stats/stat.120.html");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
// covert html to string
String responseString = reader.ReadToEnd();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(responseString);
var desktopFolder = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
var fullFileName = Path.Combine(desktopFolder, "GolfStats.csv");
using (var PlayerFile = new StreamWriter(fullFileName))
{
PlayerFile.WriteLine("Data downloaded: " + DateTime.Now);
var myTable = doc.DocumentNode
.Descendants("table")
.Where(table => table.Attributes.Contains("id"))
.SingleOrDefault(table => table.Attributes["id"].Value == "statsTable");
var myTableValues = myTable.Descendants("td");
foreach (var tdV in myTableValues)
{
PlayerFile.WriteLine(tdV.InnerText);
Console.WriteLine(tdV.InnerText);
}
PlayerFile.Flush();
}
}
问题是我的 csv 只是在单个列中列出数据,以及选择放置在表格中的广告(请参阅 webRequest 中的 url)。如果您能帮我以表格格式输出数据,那就太好了!
【问题讨论】:
-
您希望在其他列中有什么内容?
-
第 1 列 - 本周排名 第 2 列 - 最后排名 第 3 列 - 周球员姓名 第 4 列 - 回合 第 5 列 - 平均第 6 列 - 总冲程 第 7 列 - 总调整 第 8 列 - 总回合
-
@user3371361 有理由大喊大叫吗?
-
对不起,我从网页复制了标题(全部大写!)
标签: c# linq csv html-agility-pack