![]() |
Spezielle Daten aus Webseite auslesen
Moin,
ich hab da ein klitzekleines Problemchen, welches ich einfach nicht in den Griff bekomme: Ich möchte Daten eines Buttons auf einer Webseite auslesen. Als Beispiel: Ich klicke (Browser Firefox) den Login-Button der DP (hier: ![]() P.S.: Das ganze dient für ein Webseiten-Anlysierungs-Programm. |
Re: Spezielle Daten aus Webseite auslesen
Hi,
ich denke, um's Parsen des HTML-Codes wirst du nicht herumkommen. Etwas anderes wird Firefox auch nicht machen. |
Re: Spezielle Daten aus Webseite auslesen
Moin Matze,
ja das habe ich schon fast befürchtet, nur leider hab ich keinerlei Ahnung wie man das halbwegs gut und effizient realisieren könnte... |
Re: Spezielle Daten aus Webseite auslesen
nuja du könntest die seite doch mit den indykomponenten in dein programm laden und dann die entsprechenden einträge durchsuchen mithilfe von markannten sachen (eben wie der loginbutton oder solchen "festen" sachen) und das dazwischen rauskopieren.
|
Re: Spezielle Daten aus Webseite auslesen
Was meinst du denn mit "entsprechende Einträge durchsuchen" ? Die von mir gesuchten Daten stehen nicht im Seitenquelltext, dass ist ja mein Problem.
|
Re: Spezielle Daten aus Webseite auslesen
Zitat:
|
Re: Spezielle Daten aus Webseite auslesen
Hallo Balu,
Zitat:
Freundliche Grüße vom marabu |
Re: Spezielle Daten aus Webseite auslesen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal ein Screenie von den Daten die angezeigt werden angehängt. Und wie gesagt, die "********" die dort stehen gibt es im Seitenquelltext halt nicht. Hat niemand ne Idee wie Firefox da rankommt ?
@marabu: Ne, irgendwie nicht... P.S.: Sry für die schlechte Bildqualität. ;) |
Re: Spezielle Daten aus Webseite auslesen
Entschuldige, ich dachte dich interessieren die Feldinhalte im allgemeinen - weil du den Weg zu den Form-Felder gezeigt hast. Deine Frage hätte dann wohl besser geheißen: wie kann ich die vom Browser sicher abgelegten Kennwörter auslesen? Was hat das mit Seiten-Analyse zu tun?
marabu |
Re: Spezielle Daten aus Webseite auslesen
Naja ich möchte halt diese Daten (die auf dem Screenshot im unteren Feld sind) anzeigen lassen. Es soll eine Komplettübersicht über eine Webseite erstellt werden können, diese Daten würde ich daher gern in meinem Programm mit anzeigen. ;)
Gibts da einen Weg ? |
Re: Spezielle Daten aus Webseite auslesen
Das Kennwort des angemeldeten Users gehört eigentlich nicht in eine solche Komplettübersicht einer WebSeite. Wenn du ein Tool schreiben möchtest, welches den Seiten-Kennwortschutz über den Browser aushebelt, dann musst du es nicht als Seitenanalyse verschleiern. Oder ist dir die Brisanz dieser Vorgehensweise nicht bewusst?
marabu |
Re: Spezielle Daten aus Webseite auslesen
Also pass mal auf, es geht mir garantiert nicht um irgendein Passwort. ;) Ich möchte einfach die Daten auslesen mehr nicht. Siehst du in dem Screenshot vom Firefox ein Passwort ? Ich nicht. Desweiteren diente mir die DP nur als Beispiel, und wenn ich die Seite analysieren will befinden sich keinerlei Daten in den Feldern, also wo soll das Passwort herkommen ? Ich möchte nur genau das machen was der Firefox auch macht, nicht mehr und nicht weniger, und ich denke es ist legitim da ich an kein Passwort ran will. Aber ich habe es mir bereits gedacht das dieses Problem in der Delphi-PRAXiS noch mehr Probleme (unsinnige imho) aufwirft, deshalb habe ich gleich in den ersten Post geschrieben wozu ich es brauche. Zum Beispiel Seiten wie Google.de, wenn ich mir da die Daten von dem Suchen-Button angucke finde ich "de, Google Suche, Auf gut Glück, cr=CountryDE" und genau das möchte ich auslesen, und kein Passwort. Verstehst du was ich meine ?
|
Re: Spezielle Daten aus Webseite auslesen
Hallo Balu,
ich bin zwar alt, aber nicht begriffsstutzig. Ich hatte dir bereits in Beitrag #7 geschrieben, dass die von dir gesuchten Feldwerte im HTML-Code stehen. Für den Verlauf der weiteren Diskussion kann ich nichts. Hier hast du etwas Code zum Auslesen der Feldwerte:
Delphi-Quellcode:
Freundliche Grüße vom marabu
procedure ExtractFields(f: IHTMLFormElement; items: TStrings);
var i: Integer; ie: IHTMLInputElement; begin for i := 0 to Pred(f.length) do if Succeeded(f.item(i, 0).QueryInterface(IID_IHTMLInputElement, ie)) then items.Values[VarToStr(ie.name)] := VarToStr(ie.value); end; |
Re: Spezielle Daten aus Webseite auslesen
Moin marabu,
danke erstmal, aber zu welcher Komponente/Unit gehört denn IHTMLFormElement ? Danke. |
Re: Spezielle Daten aus Webseite auslesen
Die Schnittstellen für vernünftiges Arbeiten mit der WebBrowser-Komponente findest du alle in der Unit MSHTML.
marabu |
Re: Spezielle Daten aus Webseite auslesen
Das einzige was ich gefunden hab is die Borland.mshtml.dll in meinem Delphi 2005 PE Ordner, weißt du zufällig wie ich an diese Unit komme ? Thx.
|
Re: Spezielle Daten aus Webseite auslesen
Du mußt sie manuell aus der TLB erzeugen (Wrappen). das Problem an Delphi2005 ist aber, das diese Funktion vergessen wurde. Aber im
![]() ![]() |
Re: Spezielle Daten aus Webseite auslesen
Alles klar, ich kann marabu´s Code jetzt kompilieren. Das Problem is nur das ich grad ziemlich auf dem Schlauch stehe. Ich habe jetzt ExtractFields(webbrowser1, listbox1); probiert, logischerweise ghet es aber nicht. Welchen Wert muss ich denn da übergeben ?
|
Re: Spezielle Daten aus Webseite auslesen
Ein Beispiel:
Delphi-Quellcode:
marabu
procedure TWebForm.WebBrowserDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); var wb2: IWebBrowser2; doc2: IHTMLDocument2; s: TStrings; i: Integer; begin if Succeeded(pDisp.QueryInterface(IID_IWebBrowser2, wb2)) then begin doc2 := wb2.Document as IHTMLDocument2; s := TStringList.Create; for i := 0 to Pred(doc2.forms.length) do begin s.Clear; ExtractFields(doc2.forms.item(i, 0) as IHTMLFormElement, s); ShowMessage(s.Text); end; s.Free; end; end; |
Re: Spezielle Daten aus Webseite auslesen
Vielen Dank marabu, es geht. :-)
|
Re: Spezielle Daten aus Webseite auslesen
Wenn es irgendwann einmal doch nicht funktioniert, dann könnte es daran liegen, dass Frames im Spiel sind. Suche dann mal nach GetFrameDoc() hier im Forum - es könnte dir weiter helfen.
Gute Nacht marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz