同时从3个链接解析htmlagilitypack

Parsing from 3 links at the same time htmlagilitypack

我解析了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/");

我不确定,但我认为你想给出一个字符串数组(urls)并解析所有来自网站的数据.

你应该尝试类似的东西;

        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。