我解析2014,2013,2015年游戏的命令历史。 它们具有相同的结构。但链接不同。
var fourthDoc = htmlWeb.Load("http://soccer.net/2014-2015/results/");
var fifthDoc = htmlWeb.Load("http://soccer.net/2013-2014/results/");
var sixthDoc = htmlWeb.Load("http://soccer.net/2015-2016/results/");
我解析数据的方式:
var Games =
fourthDoc.DocumentNode.SelectNodes("@class = 'abc'").Select(a => new Game()
{
Date = a.SelectNodes("./a/div/div[1]/span").Single().InnerText.Trim(),
//....
});
型号:
public class Game
{
public int Id {get;set;}
public DateTime Date { get; set; }
public string FirstTeam { get; set; }
public string SecondTeam { get; set; }
}
如何在一条路径中组合三个链接? 例如
var fourthDoc = htmlWeb.Load("http://soccer.net/2014-2015/results/"+"http://soccer.net/2013-2014/results/"+"http://soccer.net/2015-2016/results/");
答案 0 :(得分:1)
我不确定,但我认为您想要提供一系列字符串(网址)并解析所有来自网站的数据。
你应该尝试类似的东西;
List<string> urls = new List<string>
{
"http://soccer.net/2014-2015/results/",
"http://soccer.net/2013-2014/results/",
"http://soccer.net/2015-2016/results/"
};
List<Games> games = new List<Games>();
foreach (string url in urls)
{
var currentData = htmlWeb.Load("url");
var currentListOfGames =
currentData.DocumentNode.SelectNodes("@class = 'abc'").Select(a => new Game()
{
Date = a.SelectNodes("./a/div/div[1]/span").Single().InnerText.Trim(),
//....
});
games.AddRange(currentListOfGames);
}
因为htmlagilitypack的htmlweb.Load方法每个请求只接受一个url。