AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Texte aus HTML-Seite aulesen

Ein Thema von Helmi · begonnen am 30. Jun 2013 · letzter Beitrag vom 30. Jun 2013
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 09:26
Hallo,

ich möchte von dieser Webseite die Tabelle mit den Benzin-Namen und -Preisen auslesen.

Gibt es da eine einfache Methode?

Meine Lösung hierfür wäre, mit idHTML.Get den Code der Seite holen und dann nach den einzelnen Benzinpreisen suchen.
Wenn die gefunden wurden über Suchen von String-Teilen den Preis rauszufinden.
Was gehen würde, aber vielleicht gibt es ja noch was einfacheres...
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

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

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 09:35
Beim Abgreifen von Daten muss mann stets schauen, dem Betreiber damit nicht auf die Füße zu treten.
Davon aber mal abgesehen würde ich es mit einem regulären Ausdruck versuchen. Über die dort auf der Seite verwendete CSS-Klasse "preisfixing" müsste man eigentlich einen hinreichend starkten Orientierungspunkt haben.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 09:42
Beim Abgreifen von Daten muss mann stets schauen, dem Betreiber damit nicht auf die Füße zu treten.
Ich bin mir dem bewusst - natürlich ist das nur für den privaten Gebrauch


Davon aber mal abgesehen würde ich es mit einem regulären Ausdruck versuchen. Über die dort auf der Seite verwendete CSS-Klasse "preisfixing" müsste man eigentlich einen hinreichend starkten Orientierungspunkt haben.
Mit regulären Ausdrücken hab ich bislang noch nicht gearbeitet

Das Suchen nach den einzelnen Namen müsste man aber trotzdem machen und mit den regulären Ausdrücken dann ab diesem Suchpunkt arbeiten, oder?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

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

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:10
Es ist ein wenig dahingeschlunzt, aber in Anbetracht der frühen Uhrzeit vielleicht ein akzeptabler Ausgangspunkt, der deutlich macht, wie man sowohl die Namen als auch die Preise ermitteln könnte.

Delphi-Quellcode:
uses
  System.RegularExpressions, System.RegularExpressionsCore;

procedure TForm1.DoFetchData;
var reg : TPerlRegEx;
begin
  /// die namen ermitteln
  reg:= TPerlRegEx.Create;
  reg.RegEx:= '<td class=preisfixing([\=\w\ ]+)>(\w+)</td>';
  reg.Subject:= memo1.Lines.Text;

  if reg.Match then
  begin
    memo2.Lines.Add( reg.Groups[2] );
    while reg.MatchAgain do
    begin
      memo2.Lines.Add( reg.Groups[2] );
    end;
  end;
  reg.Free;


  /// die preise ermitteln
  reg:= TPerlRegEx.Create;
  reg.RegEx:= '<td class=preisfixing([\=\w\ ]+)><b>([0-9\,]+)&nbsp;EUR / Liter&nbsp;</b></td>';
  reg.Subject:= memo1.Lines.Text;

  if reg.Match then
  begin
    memo2.Lines.Add( reg.Groups[2] );
    while reg.MatchAgain do
    begin
      memo2.Lines.Add( reg.Groups[2] );
    end;
  end;
  reg.Free;
end;
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:17
Alternativ könnte man es auch mit einem HTML-Parser versuchen.

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:19
Es ist ein wenig dahingeschlunzt, aber in Anbetracht der frühen Uhrzeit vielleicht ein akzeptabler Ausgangspunkt, der deutlich macht, wie man sowohl die Namen als auch die Preise ermitteln könnte.
Na dass nenn ich mal Chef-(arzt-)Behandlung
Funktioniert sehr gut, Danke! - Trotz dem schon fortgeschrittenen Tages

Wo kann man die Syntax der regulären Ausdrücke nachlesen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:32
Wo kann man die Syntax der regulären Ausdrücke nachlesen?
Z.B. hier:
http://docwiki.embarcadero.com/Libra...ore.TPerlRegEx
http://www.regular-expressions.info/
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

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

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:41
Es gibt für die "Regulären Ausdrücke" einen Quasi-Standard, der nennt sich "Perl-kompatible reguläre Ausdrücke". Im Großen und Ganzen passt das ziemlich gut auch bei der Delphi-Komponente. Das bedeutet für Dich, dass Du Dir auch ruhigen Gewissens z.B. ein PHP-Tutorial zu dem Thema anschauen kannst, wenn Du in dem Bereich ein schönes findest.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 10:56
Danke Danke für die Informationen

Wie sehr sind reguläre Ausdrücke geschwindigkeitsrelevant?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Texte aus HTML-Seite aulesen

  Alt 30. Jun 2013, 12:10
Ich hab grad ein nette Seite über reguläre Ausdrücke gefunden: http://www.regenechsen.de/phpwcms/in...d=66,0,0,1,0,0

Aber irgendwie komm ich grad ned klar:

Ich hab folgenden String:
'<td><h2>Preisfixing, ausgegeben am 30.06.2013 10:04 (MEZ)</h2></td>'

und möchte nun nen regulären Ausdruck für das Datum mit Zeit
Aber das gibt leider nichts zurück:
    reg.RegEx := '<td><h2>Preisfixing, ausgegeben am \d+\.\d+\.\d* \d+:\d+ (MEZ)</h2></td>'; Was ist daran falsch?

[Edit]
Fehler gefunden:
Muss natürlich das Datum und die Zeit in Klammern setzen
und dann Groups anpassen

Delphi-Quellcode:
    reg.RegEx := '<td><h2>Preisfixing, ausgegeben am (\d+\.\d+\.\d*\ \d+:\d+)';
    reg.Subject := Memo1.Lines.Text;

    If reg.Match then
      begin
        Memo2.Lines.Add(reg.Groups[1]);

        while reg.MatchAgain do
          Memo2.Lines.Add(reg.Groups[1]);
      end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (30. Jun 2013 um 12:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:58 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