![]() |
Lottozahlen von lotto.de abrufen
Hallo,
ich moechte die aktuellen Lottozahlen von der Webpage ![]()
Code:
Diesen Code hab ich folgendermassen in Delphi umgesetzt bis auf die letzten zwei Zeilen:
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());
Code:
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.
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); 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 |
AW: Lottozahlen von lotto.de abrufen
Also für den Fall, dass ich deine Frage falsch verstanden habe, diese Antwort ignorieren (ist einfach noch zu früh am Morgen).
Wenn es drum geht die Zahlen aus dem Html-Code Salat zu holen, das ist machbar. Mit Pos sucht man die Position von "text: zahl(" Mit Delete löscht man alles bist zu dem Text (Inklusive) Mit Pos sucht man die Position von ")" Mit Copy kopiert man alles bis zu der Position. Ergebnis ist eine Zahl (Zahl befindet sich ja zwischen "text: zahl(" und ")"). Das alles in einer Schleife durchlaufen lassen bis alles durch ist. Fertig. |
AW: Lottozahlen von lotto.de abrufen
Hallo Popov,
es waere schoen wenn das die gesuchten Zahlen waeren :) Aber 1,2,3,4,5,6 waren es nicht am letzten Ziehungstag. zahl(N) ist glaub ich eine Funktion die den Parameter N= 1, 2, 3, ... bekommt fuer erste, zweite, dritte,... Zahl der Ziehung. Die Funktion liefert dann den Wert zurueck. Das wird sozusagen vom Browser erledigt. Es gibt ja fuer jedes Bundesland eine Lotto-Seite. Bei lotto-sachsen stehen die Ziehungszahlen schoen im klartext im html ohne dieses bescheuerte JavaScript. Ich muss mich nur noch in die RegEx Ausdruecke reinpfrimeln. Gutelo |
AW: Lottozahlen von lotto.de abrufen
Ok, wie gesagt, ist noch zu früh.
Also wenn das so nicht geht, dann entweder die Funktionen selbst auswerten oder den Browsertext filtern. |
AW: Lottozahlen von lotto.de abrufen
Auch wenn es anders geht, wuerde ich doch gerne wissen wie man das generell machen kann wenn Javascript verwendet wird.
|
AW: Lottozahlen von lotto.de abrufen
Ich hatte mir die Lottozahlen damals von einer anderen Seite runtergeladen.
Ohne nachzugucken kann ich dir auswendig aber nicht mehr sagen wo das war... |
AW: Lottozahlen von lotto.de abrufen
Liste der Anhänge anzeigen (Anzahl: 2)
Als ich letztes Jahr meine Lottoanwendung zusammengestrickt hatte, nahm ich mir viel Zeit, um die besten Aktualisierungsseiten herauszufinden und die Orte, wo man das Ganze auch ohne HTML-Parserei runterladen kann.
Fazit: Es gibt zwar CSV- und Excel-Archive zum Runterladen, aber die werden wohl nicht immer zeitnah gepflegt. Ich hab mich dann nach vielem Herumprobieren für ![]() |
AW: Lottozahlen von lotto.de abrufen
Danke Perlsau,
ich hab jetzt eine erste Rumpfimplementation. Fuer diejenigen die es interessiert hier das Grundgeruest:
Code:
Das Datum in der URL kann gegen jedes beliebiges Datum von vergangenen Ziehungen ausgetauscht werden und man erhaelt so alle Zahlen von 1955 bis heute.
procedure TMainForm.Button2Click(Sender: TObject);
var sl: TStringList; // Store Webpage Source Code RegExStr : String; // Search Expression RegEx : TRegEx; // Expression Evaluation Class MatchCollection : TMatchCollection; //Store all Determined Matches i: Integer; LottoNumbers : String; begin // Read Lotto Webpage sl:=TStringList.Create; sl.Text := IdHttp1.Get('http://www.sachsenlotto.de/mskp/user/lottoresults/lottoresultsshow.do?ziehungsDatum=18.12.2013#'); // Get numbers 1 to 6 and store them in MatchCollection RegExStr := '<span class="lottonumberbig">(\d*)</span>'; RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]); MatchCollection := RegEx.Matches(sl.text); // if six numbers found then plot results if MatchCollection.Count = 6 then begin LottoNumbers := 'Zahlen: '; for i := 1 to 6 do begin LottoNumbers := LottoNumbers + MatchCollection.Item[i-1].Groups[1].Value + ', '; end; Showmessage(LottoNumbers); end else begin Showmessage('Error: No Lotto numbers found!'); end; // Get Superzahl and store it in MatchCollection RegExStr := '<span class="extralottonumberbig">(\d*)</span>'; RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]); MatchCollection := RegEx.Matches(sl.text); // if one number found then plot Superzahl if MatchCollection.Count = 1 then begin Showmessage('Superzahl: ' + MatchCollection.Item[0].Groups[1].Value); end; end; Viel Spass damit Gutelo |
AW: Lottozahlen von lotto.de abrufen
Ich will ja kein Spielverderber sein, aber hat sich mal jemand bei den Anbietern erkundigt, ob solch eine Vorgehensweise rechtens ist?
Ich zitiere hier mal exemplarisch aus den Nutzerhinweisen von ![]() Zitat:
|
AW: Lottozahlen von lotto.de abrufen
Das Hinweis ist völlig richtig und natürlich wird sich jeder Entwickler mit der Frage befassen müssen, ob er die gewünschten Inhalte überhaupt nutzen darf. Sofern es sich um die reinen Lotto-Zahlen handelt, mag es sein, dass deren Verwendung durch "öffentliche Information und Berichterstattung" abgedeckt ist, aber selbst das sollte man sich kurz bestätigen lassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz