AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Webbrowser: <tr> </tr> suchen und Werte auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Webbrowser: <tr> </tr> suchen und Werte auslesen

Ein Thema von atreju2oo0 · begonnen am 21. Mai 2008 · letzter Beitrag vom 21. Mai 2008
Antwort Antwort
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#1

Webbrowser: <tr> </tr> suchen und Werte auslesen

  Alt 21. Mai 2008, 12:40
Hallo Zusammen,

Ich steh mal wieder aufm Schlauch...
Ich möchte aus einer HomePage eine Tabelle auslesen.
Dabei möchte ich alle Werte aus einer Zeile in ein Array übernehmen.

Mein Gedanke ist also das Element <tr> zu suchen und dann bis zu </tr> alle <td>'s einzutragen.

Aus der Webbrowser Demo von toms habe ich diesen Code um Links zu finden.
(is insgesamt länger, aber ich denke das hier die interessante Stelle steckt)
Delphi-Quellcode:
      ElementCo := htmlDoc.link;
      j := ElementCo.Length - 1;
      for i := 0 to j do
      begin
        u := ElementCo.item(i);
        s := u.href;
        showmessage('s');
      end;
Ich versuche nun aus

ElementCo := htmlDoc.link; sowas wie

ElementCo := htmlDoc.tag; zu machen um an die <tr> zu kommen.


Jo... Wie ihr seht steh ich ziemlich im Wald und es würde mich nicht wundern, wenn ich nen ganz anderen Weg gehen muss.
Aber leider seh ich mitlerweile bei den ganzen Variants und IDHTMLELEMENTEN usw. gar nicht mehr durch...
Bin auch was DOM und OLE angeht ein absoluter Anfänger(mit gefährlichem Halbwissen)...
Thomas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 12:55
Zitat von atreju2oo0:
Bin auch was DOM und OLE angeht ein absoluter Anfänger(mit gefährlichem Halbwissen)...
Ok, dann musst du erst mal auf sicheren Boden.
HTML kann man sich wie einen Baum vorstellen, der sich immer weiter verästelt bis zu den Blättern (das wären die einzelnen Texte und Attribute).
So einen Baum kann man gut als Treeview darstellen. (siehe Anhang)
Firefox kann das von Hause aus (irgendwo unter Hilfe -> DOM ....) beim IE muss man den MSDN-Library durchsuchenIE Developer Toolbar installieren.
Also entweder Firefox oder IE Developer Toolbar ist ein "must-have"!
Durch den angezeigten Baum siehst du, wieviele Ebenen du hinuntersteigen musst, bis du an deine <TABLE> bist.
So, ich lass das erst mal "sacken" bei dir.
Miniaturansicht angehängter Grafiken
ie_dev_toolbar_148.gif  
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 12:57
Zitat von shmia:
Firefox kann das von Hause aus (irgendwo unter Hilfe -> DOM ....) beim IE muss man den MSDN-Library durchsuchenIE Developer Toolbar installieren.
Bei FireFox ist das auch nur ein AddOn, welches aber automatisch mitinstalliert wird. Zu finden ist das Ding unter Extras -> DOM-Inspector.
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 13:16
Danke für die Hinweise...

Bei Opera heisst das Dragonfly und ist seit der 9.5 mit dabei...



Aber wie genau greif ich jetzt über den Webbrowser auf ein einzelnes Element aus diesem Baum zu?
Auf die Links kann ich ja bereits zugreifen...
Ich hätte halt gedacht, dass ich bei dem Source statt

ElementCo := htmlDoc.link; nur nen anderen "Typ" angeben muss...
Ich will ja keine Links, sondern tables.

Ist dieser Gedankengang so richtig?

Achja: Die Tabelle hat beliebig viele Zeilen, die alle eingelesen werden sollen. Also kann ich nicht
mit nem festen Index auf die Werte zugreifen.

Bin Euch aber für weitere Links zum Thema dankbar.
Interessieren tuts mich ja schon... hab nur gerade nen bisschen Source-Frust...
Thomas
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 13:19
Du kannst die Webseite in ein DOM-Objekt laden und dann mit XPATH alle Knoten auf einmal erfragen/finden.

Geht warscheinlich schneller, als wenn du manuell suchst.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 13:39
Ich denke genau das will ich machen...

Mit Webbrowser.Document hab ich ja das DOM Objekt schon, oder?
Das muss ich nun nach meiner Tabelle durchsuchen...


Laut DOM Dokumentation von w3c müsste folgendes gehen:

showmessage(webbrowser.document.getElementById('myTable').rows[0].innerHTML); Aber TurboDelphi kennt getElementById nicht...
Wo is da mein Denkfehler?
Thomas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 14:26
Zitat von atreju2oo0:
Aber TurboDelphi kennt getElementById nicht...
Wo is da mein Denkfehler?
Dann brauchst du natürlich auch noch die offizielle Doku zu den Interfaces:
http://msdn.microsoft.com/en-us/libr...74(VS.85).aspx
und musst die ganze Zeit mit dem AS-Operator arbeiten.
Wenn du ein IHTMLElement am Wickel hast, dass aber eigentlich eine Tabelle ist, dann muss man mit as das Interface tauschen:
Delphi-Quellcode:
  elem := ....
  table := elem as IHTMLTable;
Um z.B. an die Methode getElementById zu kommen benötigt man IHTMLElement3:
(webbrowser.document.root as IHTMLElement3).getElementById(..... Es empfiehlt sich, mit Zwischenvariablen zu arbeiten um nicht immer ganz ober über das Objekt webbrowser einsteigen zu müssen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Webbrowser: <tr> </tr> suchen und Werte ausl

  Alt 21. Mai 2008, 14:58
Danke Shmia...

Genau das casten war das Problem...
Hab immer auf IHTMLDocument2 versucht...

Ich denk jetzt ist der Knoten geplatzt...
Thomas
  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 02:05 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