Einzelnen Beitrag anzeigen

Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#1

Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 02:03
Hallo,

ich moechte die aktuellen Lottozahlen von der Webpage www.lotto.de auslesen. Fur C++ Builder habe ich folgenden Code in einem anderen C++ Forum gefunden:

Code:
  WebClient wc = new WebClient();
  textBox1.Text = wc.DownloadString(@"http://www.lotto.de");
  string regex = "<div id=\"hp649gwzLeft\">.*?<div class=\"lottonumbers\">(?:\\s+<span>([\\d]{1,2})</span>){6}";
  RegexOptions options = RegexOptions.Singleline | RegexOptions.IgnoreCase;

  Regex reg = new Regex(regex, options);
  var m = reg.Match(textBox1.Text);

  var numbers = m.Groups[1].Captures;
  foreach (var n in numbers) MessageBox.Show(n.ToString());
Diesen Code hab ich folgendermassen in Delphi umgesetzt bis auf die letzten zwei Zeilen:

Code:
var RegEx : TRegEx;
    RegExStr : String;
    Match : TMatch;

Memo1.text := IdHttp1.Get('http://www.lotto.de/de/spielschein.html');
RegExStr := "<div id=\"hp649gwzLeft\">.*?<div class=\"lottonumbers\">(?:\\s+<span>([\\d]{1,2})</span>){6}";
RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]);
Match := RegEx.Match(RegExStr);
Bei den letzten beiden Zeilen im C++ Code habe ich das Problem dass es keine Property Match.Groups[1].Capture bei der Delphi Klasse gibt. Bisher wird der Quellcode der html Seite erfolgreich geladen und das matching klappt wie ich mit einfacheren Suchstrings (z.B. RegExStr := 'Lotto') ausprobiert habe. Allerdings muss RegExStr noch getuned werden, da sich das Layout bei Lotto.de geaendert hat und der Suchstring damit nicht mehr stimmt.

Hat jemand eine Idee wie ich die zwei letzten Zeilen im C Code in Delphi umsetze? Fuer Tipps wie RegExStr fuer die aktuelle Webpage aussehen muesste waere ich auch dankbar.

Der Aktuelle Quellcode fuer die Zahlen lautet:

<div class="winning_numbers boxRow clearfix"> <h3><img src="/images/fp-c334fbe9-logo_lotto_small.gif" width="109" height="16"/></h3> <ul class="clearfix" data-bind="with: lotto6aus49()"> <li data-bind="text: zahl(1)"></li> <li data-bind="text: zahl(2)"></li> <li data-bind="text: zahl(3)"></li> <li data-bind="text: zahl(4)"></li> <li data-bind="text: zahl(5)"></li> <li data-bind="text: zahl(6)"></li> <li data-bind="html: zusatzzahl(), visible: zusatzzahl() != null" class="last"></li> <li data-bind="html: superzahl(), visible: superzahl() != null" class="last"></li> </ul> </div>

Ich hab keine Ahnung wie man daraus die Zahlen erhalten soll. Das sieht eher aus wie Variablen die von einem Skript gefuellt werden.

Frohe Weihnachten

Gutelo

Geändert von Gutelo (23. Dez 2013 um 02:27 Uhr)
  Mit Zitat antworten Zitat