2016-03-26 6 views
0

私は2014,2013,2015年の間、ゲームのコマンド履歴を解析します。 同じ構造です。しかし、リンクは異なっています。同時に3つのリンクから解析するhtmlagilitypack

 var Games = 
       fourthDoc.DocumentNode.SelectNodes("@class = 'abc'").Select(a => new Game() 
       { 
        Date = a.SelectNodes("./a/div/div[1]/span").Single().InnerText.Trim(), 
        //.... 
       }); 

モデル::1回のパスで3つのリンクをどのように組み合わせるか

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/"); 
var fifthDoc = htmlWeb.Load("http://soccer.net/2013-2014/results/"); 
var sixthDoc = htmlWeb.Load("http://soccer.net/2015-2016/results/"); 

その? は例

var fourthDoc = htmlWeb.Load("http://soccer.net/2014-2015/results/"+"http://soccer.net/2013-2014/results/"+"http://soccer.net/2015-2016/results/"); 
+0

質問をより詳しく説明してください。 "1つのパスで2つのリンクを結合する方法" –

+0

私の質問を編集しました – popov

答えて

1

のために私はよく分からないが、私ははあなたが文字列(のURL)の配列を与え、ウェブサイトから来るすべてのデータを解析したいと思います。

あなたはそのようなものを試すべきです。

 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メソッドはリクエストごとに1つだけのURLを受け入れるので。

関連する問題