HTML-Seite laden und parsen

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
meister0815
Beiträge: 43
Registriert: Sa 26. Jun 2010, 17:10

HTML-Seite laden und parsen

Beitrag von meister0815 »

Hallo zusammen :)

Wie kann ich eine HTML-Seite aus dem Internet laden und dann parsen?

Es geht mir um folgendes: ich möchte die Download-Anzahl aus der Launchpad-Download-Seite eines kleinen Projekts von mir anzeigen lassen. Dazu müsste ich irgendwie den folgenden Bereich aus dieser Seite auslesen:

Code: Alles auswählen

[...]
<tfoot>
   <tr>
       <th colspan="2" style="padding-top: 1em; text-align: right;">
        Total downloads:
       </th>
       <td style="border: none; text-align: center;">
         20
       </td>
   </tr>
 </tfoot>
 [...]
Bin für jeden Hinweis dankbar!

Viele Grüße, Meister0815

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2805
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: HTML-Seite laden und parsen

Beitrag von m.fuchs »

Eine Möglichkeit wäre fcl-xml (http://wiki.lazarus.freepascal.org/fcl-xml), welches auch DOM-Routinen für HTML mitbringt.

mfg
Michael
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
theo
Beiträge: 10859
Registriert: Mo 11. Sep 2006, 19:01

Re: HTML-Seite laden und parsen

Beitrag von theo »

Laden kannst du es mit Synapse oder LNet.

Aufwändig Parsen ist in diesem Fall ja nicht nötig.
Suche einfach diesen String:

Code: Alles auswählen

Total downloads:
       </th>
       <td style="border: none; text-align: center;">
Und vom Ende aus das </td>

Dazwischen liegt deine Zahl.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: HTML-Seite laden und parsen

Beitrag von pluto »

Ich würde ein einfachen Parser schreiben *G*.... Aber Theos Vorschlag dürfte wohl am einfachsten sein.
MFG
Michael Springwald

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: HTML-Seite laden und parsen

Beitrag von af0815 »

Zu einem solchen Thema gab es hier im Forum einen längeren Thread. Da ging es auch um auslesen von HTML-Seiten, damals im Zusammenhang mit Nagios. Wenn man die Forumsuche verwendet kommt man auf folgendes Webserver abfragen

@pluto: Übrigends die runden Dinger sind Räder, die braucht man nicht neu erfinden :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: HTML-Seite laden und parsen

Beitrag von pluto »

@pluto: Übrigends die runden Dinger sind Räder, die braucht man nicht neu erfinden
Warum nicht? Tun viele... Jeder Apfel ist anders die am Baum vor sich hin wachsen *G*. Kein Apfel gleich den Anderen. Die haben nur ähnliche Eigenschaften.

So ist das mit dem Programmieren auch. Kaum jemand wird ein Programm eins zu eins genau so nach machen.
MFG
Michael Springwald

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: HTML-Seite laden und parsen

Beitrag von carli »

Ist die ankommende Seite XML-konform? (also damit meine ich _richtig streng_ XML konform)

Dann könntest du die Unit xmlread/dom benutzen.

Für alle weiteren Fälle, selber Parser schreiben.
HTML-Parser müssen sehr viel an Fehlern tolerieren, weil die Webseitengestalter eben die Geringeren unter den Entwicklern sind und dementsprechend unsauberen Code schreiben.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: HTML-Seite laden und parsen

Beitrag von pluto »

HTML-Parser müssen sehr viel an Fehlern tolerieren, weil die Webseitengestalter eben die Geringeren unter den Entwicklern sind und dementsprechend unsauberen Code schreiben.
Ich habe mich damit mal einige Zeit beschäftigt. Im Rahmen eines Projekts. So schwer ist das auch wieder nicht. Fertig bin ich zwar nicht geworden, aber ein Theoretisches Konzept habe ich schon und auch schon teilweise Anfangen. Wenn es nur um das Parsen geht.

Das Rendern ist natürlich noch ein anders Kapitel. Aber bitte nicht vergessen: HTML ist nicht gleich HTML. *G*
MFG
Michael Springwald

Antworten