Seite 1 von 1

"html tabelle auslesen"...: (so gut wie geklärt)

Verfasst: 17.05.2007 18:37
von Captn. Jinguji
Also, ich will von PB aus tabellarische Daten in der einen oder anderen Website gezielt auslesen, weil es mir zu blöd und zu aufwändig ist,
da immer mit "Markieren", "Copy&Paste" Textdateien zu erstellen und diese dann auszulesen. Das kann's nicht sein und muss doch auch anders gehen.
"tabelle website auslesen" bringt in der Suche nichts, bei anderen Worten erhalte ich eher Ergebnisse, die mich von meinem Grundproblem wegführen.

Es soll auch nicht daran scheitern, dass ich vielleicht noch in ein paar Eingabefelder sowas wie die obere rechte und die untere linke Ecke als Zeilen/Spaltenkoordinaten angeben müsste, nur das Auslesen der Zahlen (in der Regel sind es welche) sollte dann relativ zuverlässig programmgesteuert passiern können.

Eine Beispielseite wäre etwa: http://www.ecgermany.de/archiv/1981esc.htm und dorten dann eben die Tabelle weiter unten, unter "Die Wertung"

Ich bin doch bestimmt nicht der erste, der nach sowas fragt, und ein Lösungsansatz kann eigentlich nicht so schwer sein. Nur finde ich ihn bisher nicht.

Also,Tips für eine besser gezielte Suche wären schon hilftreich.

Danke schonmal

Verfasst: 17.05.2007 19:21
von AND51
> Das kann's nicht sein und muss doch auch anders gehen.
Rechtsklick in die Tabelle rein und dann "Naxh Microsoft Excel exportieren" auswählen, sofern installiert.


Ansonsten musst du in der Webseite auf folgende HTML-Tags achten:

<TABLE> Enthält die komplette Tabelle
<TR> Alle hierin enthaltenen Zellen gehören in eine Reihe (TR = Table Row)
<TD> Markiert eine Zellle

Das sind die Wesentlichen. Ansonsten gibt es noch
<THEAD> und <TH> Tabellenkopf (TH = Table Header <> Tokio Hotel!!!)
<TBODY> und <TB> Tabellenkörper (TB = Table Body)
<TFOOT> und <TF> Tabellenfuß (TF = Table Footer)
Attribut "colspan" bei <TD> Verbindet X Zellen über X Spalten hinweg
Attribut "rowspan" bei <TD> Verbindet X Zellen über X Reihen hinweg


Man beachte ferner die Möglichkeit, dass es Tablellen in Tabellen geben kann, die man ignorieren oder interpretieren muss (je nach Inhalt).


Nachfolgend die Grafik von SelfHTML, die das mit den einfachen Tags <TABLE>, <TR> und <TD> verdeutlicht:
Bild Diese Grafik ist von SelfHTML

Bitte lies dir den Artikel von SelfHTML durch!

Link zu SelfHTML, Thema Tabellen

Verfasst: 17.05.2007 19:42
von Captn. Jinguji
Hallo, AND51.

Erstmal danke, sowas wie SelfHTML habe ich gesucht.

Der Tip mit Rechtsklick in die Tabelle und als "Excel exportieren" klappt [bei mir] nicht. Ich habe STAR OFFICE installiert, eine ExportOption bietet mir das System vorsichtshalber gar nicht erst an.

In Excel will ich es auch gar nicht erst haben, aber ich nehme mal an, ich soll dann per odbc auf die ExcelTabelle gehen ? Speichern werde ich die Daten letztlich in einer SQLIte3 DB.

Jedenfalls Danke nochmals- das hilft schon erheblich weiter.

Verfasst: 17.05.2007 20:08
von AND51
Nein, ich meinte das so:
Ich habe IE und MS Office installiert.

Öffne die Webseite im IE (obs mit anderen Browsern geht, weiß ich nicht). Dann klickst du mit rechts in die Wertungs-Tabelle von deinem Beispiellink.
Dort taucht dann der erwähnte Kontextmenü-Eintrag auf: "Nach Microsoft Excel exportieren".

Wenn ich das anklicke erscheint die Tabelle dort in Excel und die Ergebnisse sind jedesmal akzeptabel. Sie sind meistens nicht 100%ig annehmbar, weil es schwierig ist, HTML-Tabellen nach Excel zu konvertieren.


// Edit: Ich habe das mal gemacht und die XLS Datei auf einen Server hochgeladen.
Hier kannst du sehen, was die Wertungs-Tabelle für eine Excel-Tabelle ergibt:
http://www.g4you.de/and/extern/pbforum/ctpjinguji.xls
Gespeichert mit MS Excel, deshalb weiß ich nicht, ob du das mit deinem Programm korrekt öffnen kannst.

Verfasst: 17.05.2007 20:46
von Captn. Jinguji
Hallo, AND51,
das habe ich schon verstanden, nochmals danke für Deine Mühe.

Ich hatte das auch bereits genauso wie von Dir beschrieben gehandhabt,
nur erhalte ich die Export-Option gar nicht im Kontextmenü.

XLS Tabellen herkömmlicher Art kann Staroffice gut lesen (ob's jetzt mit Office2007 ging, weiss ich nicht, denke aber : ja, aufgrund der Einfachheit der hier betrachteten Tabelle.)

Aber ich will die Werte ja in einem Stringarray haben; wenn ich's in Excel hinein bekäme, hätte ich dann das Problem von HTML zu Excel verlagert ("Our situation has not rrrrreally improved!", würde Indiana Jones' Vater dazu sagen ;) ).
Klar, Tabellenkalkulationen können super rechnen, Statistiken erzeugen, auswerten und grafisch präsentieren; aber das ist gar nicht das Ziel.

Verfasst: 17.05.2007 20:57
von AND51
Achso.
Ich weiß ja nicht, es gab im (dt. oder engl.) Forum einen Code, der hat Excel in dein Programm eingebunden wie ein Webgadget. Ich weiß aber weder den Link noch die Überschrift des Topics, tut mir sorry.

Vielleicht wäre das ja was für dich.

Ansonsten wäre es gar nicht so schwierig, XLS => PureBasic zu konvertieren, du musst die Tabelle ja nicht in XLS speichern. Es reicht doch, wenn du das als Klartextdatei speichern lässt, also als CSV (CommaSeparatedValues) oder TXT Datei. Diese kannst du einfacher einlesen.

Vielleicht wäre auch das noch was für dich.

Ansonsten bleibt wirklich nur der Weg, die Tabelle manuell (also mit PB) zu parsen.
An sich ist das nicht schwierig, nur musst du dabei Unmengen an Zwischentags prüfen und ungültige Tags (<B> und <U> und alles andere, auch <SCRIPT> ... </SCRIPT> !) rausfiltern. Darin liegt die Schwierigkeit.

In HTML gibt's ebven keine Syntaxfehler, im Webbrowser wird also alles richtig angezeigt, auch wenn Tags fehlen oder beispielsweise in der falschen Reihenfolge gesetzt sind, was gerade oft denen passiert, die mit Hand coden.
Beispiel:
<u><b>Franz jagt im komplett verwahrlisten Taxi quer durch Bayern.</u></b>

Naja, du schaffst das schon! :wink: