[erledigt] POST-Felder einer Seite herausfinden

Alle Fragen zur Netzwerkkommunikation
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[erledigt] POST-Felder einer Seite herausfinden

Beitrag von Michl »

Hallo Allerseits,

kennt jemand eine Möglichkeit sich alle POST-Felder (inkl. Hidden Fields) einer Page ausgeben zu lassen?

Auf meiner bisherigen Suche bin ich nur hier bei Benibela seinen Internettools fündig geworden:

Code: Alles auswählen

postdata := process(page, 'form(//*:form, ''__EVENTTARGET=ctl00$bodyCenterContentPlaceHolder$periodDateGridView&__EVENTARGUMENT=Page$'+inttostr(p)+''').post').toString;
Sieht für mich auf den ersten Blick etwas kryptisch aus, gibt es Alternativen (z.B. mit Synapse, LNet)?

Danke

Michael
Zuletzt geändert von Michl am Fr 17. Okt 2014, 07:56, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: POST-Felder einer Seite herausfinden

Beitrag von Socke »

Michl hat geschrieben:kennt jemand eine Möglichkeit sich alle POST-Felder (inkl. Hidden Fields) einer Page ausgeben zu lassen

Willst du die Namen der Felder ausgeben? Oder vielmehr die Daten aus einer POST-Anfrage verarbeiten?

Michl hat geschrieben:Sieht für mich auf den ersten Blick etwas kryptisch aus, gibt es Alternativen (z.B. mit Synapse, LNet)?

Mit Synapse und LNet kannst du eine Webseite nur herunterladen. Wo genau die Eingabefelder stehen und welche Werte sie enthalten kannst du mit diesen Bibliotheken nicht herausfinden. Wenn du XHTML-Seite hast, kommst du mit XML und XPath ein wenig lesbarer an die Daten heran. Falls die Webseite aber kein Gültiges XML sind, geht das nicht mehr; in diesem Fall wären die Internet-Tools wohl ein besserer Weg.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: POST-Felder einer Seite herausfinden

Beitrag von Michl »

Danke erstmal für die Antwort!

Socke hat geschrieben:Willst du die Namen der Felder ausgeben? Oder vielmehr die Daten aus einer POST-Anfrage verarbeiten?
Mich interessieren die Namen (würde damit ein Protokoll füttern wollen).

Leider handelt es sich bei den Seiten nicht um XHTML-Seiten. Schade, ich hatte gehofft, dass es eine einfache Möglichkeit gäbe á la php. Falls nicht noch jemand eine Idee hat, werde ich wohl selber parsen. Das sollte, so hoffe ich, eigentlich nicht so schwer sein.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: POST-Felder einer Seite herausfinden

Beitrag von theo »

Michl hat geschrieben:Leider handelt es sich bei den Seiten nicht um XHTML-Seiten. Schade, ich hatte gehofft, dass es eine einfache Möglichkeit gäbe á la php.


PHP läuft auf dem Server. Das ist komplett was anders, als HTML parsen.
Der Server empfangt im einfachen Fall etwas wie:

Code: Alles auswählen

 
Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21


Das kann man natürlich leicht parsen. Das macht Freepascal auch, wenn es auf dem Server laufen darf.
http://wiki.lazarus.freepascal.org/fcl- ... g_GET_data

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: POST-Felder einer Seite herausfinden

Beitrag von Michl »

Aehm ja, sorry für diesen hinkenden Vergleich, das ist wohl meinen unzureichenden PHP-Kenntnissen zu verschulden. Mir geht es in der Tat, um das Parsen einer HTML-Seite.

Was mir gerade noch so durch den Kopf geht, könnte diese Aufgabe nicht auch eine Methode eines embedded Browsers bewerkstelligen?! Dieser müsste doch diese POST-Daten übermitteln oder wie macht er das sonst?! Weiss jemand, ob und wie der IE per ActiveX, Geckobrowser oder am liebsten fpCEF so eine Methode zur Verfügung stellt?!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

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

Re: POST-Felder einer Seite herausfinden

Beitrag von theo »

Michl hat geschrieben:Was mir gerade noch so durch den Kopf geht, könnte diese Aufgabe nicht auch eine Methode eines embedded Browsers bewerkstelligen?! Dieser müsste doch diese POST-Daten übermitteln oder wie macht er das sonst?! Weiss jemand, ob und wie der IE per ActiveX, Geckobrowser oder am liebsten fpCEF so eine Methode zur Verfügung stellt?!


Das willst du nicht wirklich, das ist viel komplizierter als die Internet Tools von BeniBela.
Häng dich da rein, oder benutze sonst einen HTML Parser statt nach Alternativen zu grübeln.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: POST-Felder einer Seite herausfinden

Beitrag von Michl »

OK, danke! Ist schon eine Weile her, dass ich mir die Internet Tools mal angesehen hatte. Soweit ich weiss, waren sie GPL-lizensiert. Werde mich dann wohl darin üben, dafür selber einen Parser zu schreiben.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten