Seite 1 von 1

HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 12:55
von Elvis
Hallo allerseits,

ich arbeite gerade an einem Projekt, wo ich Daten aus eine HTML Datei auslesen muß.
Leider fehlen bei den Table und div Tags, die ich benötige, jegliche id und namens Zuweisungen.

Ich habe mir also gedacht ich lese alle Tags in ein Array ein und arbeite mit einer Art koordinatensystem.

Jetzt ist nur meine Schwierigkeit wie bekomme ich die HTML Datei zerplückt.
Ich habe ein Programm (domdisplay) von Phil Idle endeckt, das das allem anschein nach kann, aber keine Ahnung ob man dort an den source kommt, da es noch in 1.82 kompiliert ist.

Hat jemand vielleicht erfahrung mit sowas oder kann mir einen Tipp geben?

Vielen Dank

Rene

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 13:41
von brandelh
Falls du die Prof Sub hast, gibt es von Alaska code dazu ... HRF.ZIP (HTML Reflection Framework) oder so
Phil hat eigentlich immer den Quellcode rausgegeben, seine Dateien kann man hier finden:

:arrow: http://www.alaska-software.com/download ... ection=400
:arrow: http://www.xbwin.com/forum.php?ng=/%2Fn ... .resources

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 13:52
von Jan
Hubert,

auf der Alaska-Seite hatte ich auch schon nachgesehen. Da sind aber wirklich nur die PDF und die dll. Kein Code. Auch auf der ftp-Seite von Alaska nicht.

Und leider gilt das Gleiche für Pablos Seite ...

Jan

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 13:59
von Tom
Wenn es um eine konkrete HTML-Datei geht, die immer gleich aufgebaut ist, kann es sinnvoller sein, zeilenweise Strings zu analysieren. Ein allgemeines Tool wird man ohnehin kaum bauen können, wenn es um dynamische Inhalte geht.

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 14:22
von georg
Hallo,


an dieser Stelle möchte ich einmal den Begriff "Regular Expressions" in den Raum werfen.

Ich verwenden inzwischen überwiegend Regular Expressions (unter selfhtml.org gibt es eine allgemeinverständliche Einführung in das Thema), um Webseiten zu analysieren und bestimmte Inhalte zu extrahieren.

Von Phil Ide gibt es einen Wrapper, um die PCRE (Pearl Compatible Regular Expressions) Library auch unter Xbase++ nutzen zu können. Alaska stellt den Wrapper im Download-Bereich zur Verfügung.

Ach ja, fast hätte ich's vergessen: Regular Expressions werde ich in meinem Vortrag nach der Jahreshauptversammlung behandeln.

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 06. Mai 2014 16:32
von Elvis
Also vielen Dank erstmal für die schnellen Antworten.

Hubert, ja ich habe die Prof. Subscription und habe mir das HRF angesehen. Phil spricht allerdings in der Hilfe zum "domdisplay" von einer HRF2, die konnnte ich bisher auch nicht finden. Damit würde es wahrschienlich noch einfacher werden.

Tom, die Inhalte sind leider Dynamisch da komme ich nicht drumherum.

Ich werde mir das mit den PCRE mal ansehen.

Wenn jemand Zugang zu der Source von domdisplay oder HRF2 hat wäre natürlich am allerbesten.

Rene

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Mo, 19. Mai 2014 9:51
von Armin
Hallo Rene,
ja ich habe die Prof. Subscription und habe mir das HRF angesehen
damit sollte es doch gut funktionieren... Wenn Du Fragen hast, ich habe schon einiges damit gemacht.

Gruß, Armin

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Mo, 19. Mai 2014 9:58
von Elvis
Hallo Armin,

ja ich habe es mir auch angesehen, aber es fehlt leider eine wichtige Funktion.
Es gibt die funktionen Tag bei Name und Tag bei ID.
Leider fehlt die Funktion Tag bei Type.

Wenn ich jetzt 10 Tabellen (<table>) in einer HTML Datei habe, ohne ID oder Name, kann ich per dem was ich im HRF gefunden habe, mit nicht die 7 Tabelle geben lassen.

Hast Du so einen Fall schon mal gehabt?
Bzw. hast Du mit HRF schon mal erfolgreich eine ganze HTML datei zerlegt bekommen?

Gruß

Rene

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Di, 20. Mai 2014 10:28
von Armin
Hallo Rene,

so sollten in aTable alle Tabellen stehen:

Code: Alles auswählen

oElem :=  oDocument:childFromTag( "body", .t. )
aTable := childtest(oDocument,oElem, aTable)


function childtest(oDocument,oElem,aTable)
local aChilds := {}
local i := 0

   aChilds := oElem:childList()

   for i := 1 to len(aChilds)
      if aChilds[i]:cHTMLTag == "table"
         aadd(aTable, aChilds[i])
      endif
      aTable := childtest(oDocument,aChilds[i], aTable)
   next

return aTable

Gruß, Armin

Re: HTML Datei in Einzelteile zerlegen

Verfasst: Do, 22. Mai 2014 9:08
von Elvis
Hallo Armin,

vielen Dank ich teste das mal aus.

Gruß

Rene