public void ParseAttackRang() { string pageSource = Misc.ReadContent("..\\..\\..\\Samples\\TestFiles\\statistiken.attack.php"); HtmlParser htmlParser = new HtmlParser(pageSource); PlayerData playerData = new PlayerData(); htmlParser.ParseAttackRang(playerData, "jeza"); Assert.AreEqual("jeza", playerData.Name); Assert.AreEqual(18145, playerData.AttackPoints); Assert.AreEqual(23, playerData.AttackRang); Assert.AreEqual(2242, playerData.Population); Assert.AreEqual(4, playerData.VillageCount); }
public void ParseAttackRang(PlayerData playerData, string username) { /* <tr> <td class="right nbr">21. </td> <td class="s7"><a href="spieler.php?uid=4133">bokson</a></td> <td>4051</td> <td>7</td> <td>17893</td> </tr> <tr class="hl" > <td class="ra fc" >5345.</td> <td class="pla " ><a href="spieler.php?uid=10850">jezonsky</a> </td> <td class="pop " >336</td> <td class="vil " >2</td> <td class="po lc" >0</td> </tr> * */ //const string patternRang = // @"<td class=""(.*)"">([0-9]{0,6}). </td>[\s]{0,3}<td class=""(.*)""><a href=""spieler.php.uid=([0-9]{0,6})"">(.*)</a></td>[\s]{0,3}<td(\sclass=""(.*)"")?>([0-9]{0,6})</td>[\s]{0,3}<td(\sclass=""(.*)"")?>([0-9]{0,6})</td>[\s]{0,3}<td(\sclass=""(.*)"")?>([0-9]{0,6})</td>"; const string patternRang = @"<td class=""ra fc"" >([0-9]{0,6}).</td>[\s]{0,4}<td class=""pla "" ><a href=""spieler.php.uid=([0-9]{0,6})"">(.*)</a> </td>[\s]{0,5}<td class=""pop "" >([0-9]{0,6})</td>[\s]{0,5}<td class=""vil "" >([0-9]{0,6})</td>[\s]{0,5}<td class=""po lc"" >([0-9]{0,6})</td>"; MatchCollection rangCollection = Regex.Matches(pageSource, patternRang); for (int i = 0; i < rangCollection.Count; i++) { string name = rangCollection[i].Groups[3].Value.Trim(); if (name == username) { playerData.Name = name; playerData.AttackRang = Int32.Parse(rangCollection[i].Groups[1].Value.Trim()); playerData.Population = Int32.Parse(rangCollection[i].Groups[4].Value.Trim()); playerData.VillageCount = Int32.Parse(rangCollection[i].Groups[5].Value.Trim()); playerData.AttackPoints = Int32.Parse(rangCollection[i].Groups[6].Value.Trim()); break; } } }
private void GetStats(ServerInfo serverInfo, int number, string username, AlianceData data) { PlayerData playerData = new PlayerData {Number = number}; //rank=&name=jasa&submit.x=7&submit.y=8&submit=submit string postData = String.Format("&rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username); textBoxStatus.Text += postData + "\r\n"; string pageSource = Http.SendData(serverInfo.StatistikAttack, postData, serverInfo.CookieContainer, serverInfo.CookieCollection); HtmlParser htmlParser = new HtmlParser(pageSource); htmlParser.ParseAttackRang(playerData, username); postData = String.Format("&rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username); textBoxStatus.Text += postData + "\r\n"; pageSource = Http.SendData(serverInfo.StatistikDefense, postData, serverInfo.CookieContainer, serverInfo.CookieCollection); htmlParser = new HtmlParser(pageSource); htmlParser.ParseDefenseRang(playerData, username); postData = String.Format("?rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username); pageSource = Http.SendData(serverInfo.StatistikRang, postData, serverInfo.CookieContainer, serverInfo.CookieCollection); htmlParser = new HtmlParser(pageSource); htmlParser.ParseRang(playerData, username); data.AddPlayerData(playerData); textBoxStatus.Text += playerData + "\r\n"; }
public void ParseRang(PlayerData playerData, string username) { /* <td class="li ou nbr" align="right">161. </td> <td class="s7 ou"><a href="spieler.php?uid=9500">jeza</a></td> <td class="ou"><a href="allianz.php?aid=1467">FOR</a></td> <tr class="hl" > <td class="ra fc" >1374.</td> <td class="pla " ><a href="spieler.php?uid=10850">jezonsky</a> </td> <td class="al " ><a href="allianz.php?aid=355">Legacy</a></td> <td class="pop " >337</td> <td class="vil lc" >2</td> </tr> * */ const string patternRang = @"<td class=""ra fc"" >([0-9]{0,6}).</td>[\s]{0,4}<td class=""pla "" ><a href=""spieler.php.uid=([0-9]{0,6})"">(.*)</a> </td>[\s]{0,5}<td class=""al "" ><a href=""allianz.php.aid=([0-9]{0,6})"">(.*)</a></td>"; MatchCollection rangCollection = Regex.Matches(pageSource, patternRang); for (int i = 0; i < rangCollection.Count; i++) { string name = rangCollection[i].Groups[3].Value.Trim(); if (name == username) { playerData.Name = name; playerData.Rang = Int32.Parse(rangCollection[i].Groups[1].Value.Trim()); playerData.Aliance = rangCollection[i].Groups[5].Value.Trim(); break; } } }