Advertisement
tankcr

Untitled

Jun 17th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.61 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Net;
  7. using System.IO;
  8. using HtmlAgilityPack;
  9. using System.Xml.Serialization;
  10. using System.Text.RegularExpressions;
  11.  
  12. namespace ROD_Deck_Builder
  13. {
  14.     public class Cards
  15.     {
  16.         public List<Card> tableData;
  17.  
  18.         public List<Card> TableData
  19.         {
  20.             get { return tableData; }
  21.             set { tableData = value; }
  22.         }
  23.  
  24.         public Cards()
  25.         {
  26.  
  27.         }
  28.     }
  29.     public class GetPage
  30.     {
  31.         public static Cards GetPageData(string url)
  32.         {
  33.  
  34.             Cards table = new Cards();
  35.             table.TableData = new List<Card>();
  36.             string weburl = url;
  37.             WebClient dl = new WebClient();
  38.             dl.Encoding = Encoding.UTF8;
  39.             string page = dl.DownloadString(weburl);
  40.             HtmlDocument mydoc = new HtmlDocument();
  41.             mydoc.LoadHtml(page);
  42.  
  43.             HtmlNode htmltable = mydoc.DocumentNode.SelectSingleNode("//table[@class='witiable sortable']");
  44.             var tableHeaders = htmltable.SelectNodes("tr[th]/th");
  45.             foreach (var header in tableHeaders)
  46.             {
  47.                 string columnName = header.InnerText.Trim();
  48.             }
  49.  
  50.             var tableRows = htmltable.SelectNodes("tr").OfType<HtmlNode>().Skip(1);
  51.             foreach (var row in tableRows)
  52.            
  53.             {
  54.                 Card item = new Card();
  55.  
  56.                 HtmlNodeCollection rowcolumns = row.SelectNodes("td");
  57.                     Match match = Regex.Match(rowcolumns[0].InnerText, @"\d+");
  58.                     if (match.Success)
  59.                     {
  60.                         int rarity = 0;
  61.                         int.TryParse(match.Value, out rarity);
  62.                         if (rarity >= 1 && rarity <= 7)
  63.                         {
  64.                             item.Rarity = (ERarity)rarity;
  65.                         }
  66.                         else
  67.                         {
  68.                             item.Rarity = ERarity.None;
  69.                         }
  70.                     }
  71.                     item.Name = Convert.ToString(rowcolumns[1].InnerText).TrimEnd('\r', '\n');
  72.                     item.Realm = ParseRealm(rowcolumns[2]);
  73.                     //item.Realm = Convert.ToString(rowcolumns[2].InnerText).TrimEnd('\r', '\n');
  74.                     //item.Faction = Convert.ToString(rowcolumns[3].InnerText).TrimEnd('\r', '\n');
  75.                     //item.MaxAtk = Convert.ToString(rowcolumns[4].InnerText).TrimEnd('\r', '\n');
  76.                     //item.MaxDef = Convert.ToString(rowcolumns[5].InnerText).TrimEnd('\r', '\n');
  77.                     item.Total = Convert.ToInt32(rowcolumns[6].InnerText);
  78.                     item.Cost = Convert.ToInt32(rowcolumns[7].InnerText);
  79.                     item.AttEff = Convert.ToInt32(rowcolumns[8].InnerText);
  80.                     item.DefEff = Convert.ToInt32(rowcolumns[9].InnerText);
  81.                     item.OverallEff = Convert.ToInt32(rowcolumns[10].InnerText);
  82.                     //item.Skill = Convert.ToString(rowcolumns[11].InnerText).TrimEnd('\r', '\n');
  83.                     //item.EventSkl1 = Convert.ToString(rowcolumns[12].InnerText).TrimEnd('\r', '\n');
  84.                     //item.EventSkl2 = Convert.ToString(rowcolumns[13].InnerText).TrimEnd('\r', '\n');
  85.                     table.TableData.Add(item);
  86.             }
  87.            return table;
  88.         }
  89.  
  90.         private static ERealm ParseRealm(HtmlNodeCollection rowcolumns)
  91.         {
  92.             string realm = rowcolumns[2].InnerText;
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement