AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Lottozahlen von lotto.de abrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Lottozahlen von lotto.de abrufen

Ein Thema von Gutelo · begonnen am 23. Dez 2013 · letzter Beitrag vom 23. Dez 2013
Antwort Antwort
Seite 1 von 3  1 23      
Gutelo

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

Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 01: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 01:27 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 07:08
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.
  Mit Zitat antworten Zitat
Gutelo

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

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 07:20
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
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 07:33
Ok, wie gesagt, ist noch zu früh.

Also wenn das so nicht geht, dann entweder die Funktionen selbst auswerten oder den Browsertext filtern.
  Mit Zitat antworten Zitat
Gutelo

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

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 07:39
Auch wenn es anders geht, wuerde ich doch gerne wissen wie man das generell machen kann wenn Javascript verwendet wird.

Geändert von Gutelo (23. Dez 2013 um 08:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 08:11
Ich hatte mir die Lottozahlen damals von einer anderen Seite runtergeladen.
Ohne nachzugucken kann ich dir auswendig aber nicht mehr sagen wo das war...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 09:43
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 diese Seite entschieden: Da ist alles drin, was ich brauche, auch die Gewinnquoten und die Anzahl der Gewinner usw.
Miniaturansicht angehängter Grafiken
lottoupdate.jpg   mainform.jpg  
  Mit Zitat antworten Zitat
Gutelo

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

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 11:20
Danke Perlsau,

ich hab jetzt eine erste Rumpfimplementation. Fuer diejenigen die es interessiert hier das Grundgeruest:

Code:
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;
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.

Viel Spass damit

Gutelo
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 11:58
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 www.sachsenlotto.de:
Zitat:
Urheber- und Markenrechte
Die Inhalte (Bilder oder Texte) und/oder die graphische Gestaltung dieser Website sind urheber- bzw. markenrechtlich geschützt. Kein Teil der graphischen Gestaltung dieser Website darf ohne schriftliche Zustimmung der Sächsischen LOTTO-GmbH in irgendeiner Form weiterverwendet werden. Gleiches gilt für die Inhalte, soweit diese nicht ausdrücklich für die öffentliche Information und Berichterstattung und deren Weiterverbreitung vorgesehen sind bzw. wenn deren Nutzung über die urheberrechtlich zulässige und erlaubte Verwendung hinausgeht.
Ich möchte zwar den Teufel nicht an die Wand malen und wo kein Kläger da kein Richter, aber dennoch halte ich die Veröffentlichung von Quelltext zum Screen bzw. Web Scraping zumindest für nicht unkritisch - auch nicht für den hiesigen Forenbetreiber.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 12:36
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.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz