Mam problem ze zbieraniem danych z kodu źródłowego strony. Chcę uzyskać kilka liczb, które występują bezpośrednio po danym stringu. Wszystko działa tak jak należy tylko w przypadku pierwszej drużyny z tabeli, później zbierane są nie te liczby, o które mi chodzi. Wydaje mi się, że powinno to działać, no ale kompilatora nie przekonam :). Jeśli ma ktoś propozycję jak to naprawić lub proponuje inną metodę do zrobienia tego samego, będę wdzięczny.
Kodzik (wersja wstępnie robocza):
try
{
string url = "http://www.livesports.pl/tabela/WpBznQ9s/IihNoof0/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string code = sr.ReadToEnd();
sr.Close();
string name = ">" + textBox1.Text + "<";
//code = code.Replace("\t", "");
//code = code.Replace("\n", "");
//code = code.Replace(" ", "");
Regex reg1 = new Regex(">[0-9][0-9]<");
Regex reg2 = new Regex(">[0-9][0-9]:");
Regex reg3 = new Regex(":[0-9][0-9]<+");
string[] tab = { "", "", "" };
Boolean bl1 = false;
Boolean bl2 = false;
Boolean bl3 = false;
richTextBox1.Text = code;
foreach (Match m in reg1.Matches(code))
{
if (code.IndexOf(m.ToString()) > code.IndexOf(name) && bl1 == false)
{
tab[0] = m.ToString();
bl1 = true;
}
}
foreach (Match m in reg2.Matches(code))
{
if (code.IndexOf(m.ToString()) > code.IndexOf(name) && bl2 == false)
{
tab[1] = m.ToString();
bl2 = true;
}
}
foreach (Match m in reg3.Matches(code))
{
if (code.IndexOf(m.ToString()) > code.IndexOf(name) && bl3 == false)
{
tab[2] = m.ToString();
bl3 = true;
}
}
for (int i = 0; i < 3; i++)
{
tab[i] = tab[i].Replace(">", "");
tab[i] = tab[i].Replace("<", "");
tab[i] = tab[i].Replace(":", "");
}
label2.Text = "Rozegrane mecze : " + tab[0] + " " + code.IndexOf(tab[0].ToString());
label3.Text = "Bramki strzelone: " + tab[1] + " " + code.IndexOf(tab[1].ToString());
label4.Text = "Bramki stracone : " + tab[2] + " " + code.IndexOf(tab[2].ToString());
label1.Text = code.IndexOf(name).ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}