Internet Seite parsen ?
spacer
Autor Nachricht
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 10:34 
Hallo

Ich möchte 2 Werte in Formular Felder einer Internetseite senden, diese bestätigen und die Folgeseite dann wiederum interpretieren. Ich benötige diese Informationen für einen Datenimport, da dieser Vorgang momentan händisch läuft. Kann ja eigentlich nicht so schwer sein 2 Formularfelder aus Delphi raus zu befüllen, oder?

Die Internetseite sieht wie folgt aus:
ausblenden Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<div class="contentBody">
<form id="orderDetails" method="post" action="/MWIA/fc.htm?_flowExecutionKey=_cF3DF0F5F-5AC9-AA49-EF94-AD2B84B3E4F0_k85A54B9C-7754-52D4-5A84-D82AC4895810"><br>
<label for="techId">Techniker Nummer</label><br/>
<input id="techId" name="techId" style="-wap-input-format: '5N'; -wap-input-required: true;" type="text" value="" maxlength="5"/><br><br/> <--- 1. Feld

<label for="woId">Auftragsnummer</label><br/>
<input id="woId" name="woId" style="-wap-input-format: '6N'; -wap-input-required: true;" type="text" value="" maxlength="6"/><br/><br/> <--- 2. Feld

<input type="submit" class="button" name="_eventId_login" value="Best&auml;tigen"/><br/><br/>
<input type="hidden" name="tek" value="SCH" />
</form>
</div>

Beispiel: 1.Feld = 123 2.Feld = 456
Wie fange ich so was an?

Mal so nebenbei. Hier wird nichts illegales gemacht. Ich brauche lediglich eine Auswertung einer Auftragsnummer, was leider immer per Hand eingetragen werden muß.

Danke
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 11:49 
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
uses
..., IdHTTP;

var
http: TIdHTTP;
params: TStrings;
result: String;
begin
http := TIdHTTP.Create(nil);
try
params := TStringList.Create;
try
params.add('techId=1234');
//usw...
result := http.post('http://www.domain.com/script.php', params);
finally
FreeAndNil(params);
end;
finally
FreeAndNil(http);
end;
end;


EDIT: Moment mal, irgendwie kam mir dein Name bekannt vor: www.delphiforum.de/viewtopic.php?t=106809
Was soll dieser Thread wenn du schon weißt wie es geht? :?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mo 17.10.11 11:55 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden Quelltext markieren
1:
 action="/MWIA/fc.htm?_flowExecutionKey=_cF3DF0F5F-5AC9-AA49-EF94-AD2B84B3E4F0_k85A54B9C-7754-52D4-5A84-D82AC4895810">



Nach diesem "flowExecutionKey" sollte man evtl noch schauen. Bleibt der in dieser Anwendung immer gleich oder wird der bei jedem Besuch neu generiert, oder....?


Btw: Ich sehe gerade beim Schreiben, was Andreas noch hinzugefügt hat.
Warum machst du hier einen neuen Thread auf, der das gleiche Problem behandelt, das in einem alten Thread von dir schon gelöst wurde?

Sehr merkwürdig...

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 12:18 
Ähm .. ?!
Ich glaub ich steh etwas auf dem Schlauch. Wieso ist dass das Gleiche?

Bei meinem alten Thread hab ich Werte aus Delphi an ein PHP-Script geschickt, was diese Daten dann in die Datenbank sendet.
JETZT will ich aber 2 Formularfelder einer Internetseite mit Werten füllen, den OK Button auf der Internetseite drücken und schauen wie die Auswertung aussieht.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 12:22 
Selbes Prinzip? Du sendest Daten an eine Internetseite und wertest das Ergebnis aus. Wenn du im Browser auf den Submit-Button des Formulars klickst, passiert auch nichts anderes*.

* = Es sei denn die Seite verwendet JavaScript. Dann musst du einen TWebBrowser verwenden und automatisieren, siehe Forum-Suche.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 12:27 
ah ok .. dumme Frage: Wird der OK-Button automatisch ausgelöst? Wo landet denn die Ergebnisseite? Das interpretieren dieser Ergebnisseite passiert dann in "script.php" ?

P.s.: Die Seite verwendet kein Javascript.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mo 17.10.11 13:25 
Bei diesem Prinzip gibt es keinen "OK"-Button.

Wenn du auf einer Webseite (HTML) ein Formular ausfüllst und auf "OK" klickst, dann werden die eingegebenen Daten per HTTP POST oder GET an einen Service / ein Programm / PHP Script / whatever geschickt, welches dann mit diesen Daten arbeitet.

Wenn du ein Programm wie hier oder in deinem anderen Beispiel schreibst, dann baust du dir die Anfrage selbst zusammen und schickst diese selbst an deinen Verarbeiter.

Konkret schaut das so aus, dass du im Endeffekt lediglich eine neue "Seite" aufrufst. Ob das nun die "index.htm" oder "start.php" oder "rechnewas.php" ist - es ist immer ein Seitenaufruf. Bei der Übermittlung von Daten via GET wird einfach etwas an die URL gehängt, bei Übermittlung via POST wird dem HTTP Request etwas angehängt.

Wikipedia weiss dazu auch etwas zu sagen: de.wikipedia.org/wiki/Http


Für dich heisst das nun: In deinem Programm die gewünschte Seite aufrufen und entsprechende Parameter übergeben wie in deinem anderen Thread. Fertig.

PS: Stichwort am Rande: "HTTP-Redirect" könnte noch interessant sein

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 13:46 
Hmm ..
Wenn ich dich richtig verstehe sollte die folgende Methode doch eigentlich gehen oder stell ich mich grad einfach zu dämlich an, da ich das noch nie gemacht habe?!
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);
var
sl : TStringList;
test : String;
begin
sl := TStringlist.Create;
sl.Add('techId=123');
sl.Add('woId=456');

try
test := IdHTTP1.Post('https://www.domain.com',sl);
except
Application.MessageBox('Fehler','Information',MB_ICONWARNING);
Exit;
end;

sl.Free;
end;

Leider bekomm ich unten angezeigte Fehlermeldung :-(

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Einloggen, um Attachments anzusehen!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mo 17.10.11 14:04 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Hmm ..
...oder stell ich mich grad einfach zu dämlich an, da ich das noch nie gemacht habe?!



Du hast das doch schon gemacht!
Siehe: www.delphiforum.de/viewtopic.php?t=106809

Du hast jetzt in dieser aktuellen, neuen Situation nur eine andere URL und andere Parameter, die du übergibst. Der Rest ist doch identisch!




edit: Wo tritt diese Fehlermeldung auf? Hast du die Intercept-Property gesetzt, wenn du schon mit HTTPS arbeitest?

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 14:12 
Bei gesicherten Verbindungen (https) musst du der Eigenschaft IOHandler eine SSL-IO-Handler-Komponente zuweisen.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 14:12 
Kannst du mir zu dem Fehler was sagen?
In meinem Beispiel würde dann also in "test" der komplette HTML-Quellcode stehen (wäre ja genau was ich will) ?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hallo Andreas

wie sieht das anhand von einem Beispiel aus?
Hab noch nie mit SSL-Verschlüsselungen gearbeitet :-(
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 14:21 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo Andreas

wie sieht das anhand von einem Beispiel aus?
Hab noch nie mit SSL-Verschlüsselungen gearbeitet :-(


Also bitte, ein bisschen Eigeninitiative wäre angebracht... :roll:

Komponentenliste durchblättern, TIdSSLIOHandlerSocketOpenSSL aufs Formular ziehen und bei TIdHTTP zuweisen.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 14:27 
Klappt nicht. JEtzt findet er eine SSL-Bibliothek nicht --> siehe Anhang
Einloggen, um Attachments anzusehen!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 14:30 
Du brauchst die beiden DLLs libeay32.dll und ssleay32.dll. Findest du 100% bei Google. Müssten aber auch im Indy-Paket enthalten sein.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mo 17.10.11 14:35 
Den Indy-Komponenten liegt (bis mind. Version 9 - eben lokal geprüft) eine Textdatei bei, die den Umgang und den Verbleib der DLLs klärt (wo herunterladen, wo speichern, etc...).

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 15:14 
Jetzt bekomme ich einen Bibliotheken-Fehler. Ich nutze Delphi 7 Enterprise mit Indy 9. Sollte doch damit eigentlich gehen oder muß ich da von anfang an was anders machen? Ich bin kurz vorm verzweifeln :-(
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Mo 17.10.11 16:32 
user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt bekomme ich einen Bibliotheken-Fehler.

Welchen Fehler? Was sagt Google oder die Forensuche? Hast du auch die richtigen DLLs?

user profile iconOliverN_26 hat folgendes geschrieben Zum zitierten Posting springen:
Ich nutze Delphi 7 Enterprise mit Indy 9.


Die aktuelle Indy Version ist 10, ein Update kann also nicht schaden. Vllt. gehts dann sogar, wer weiß...
www.indyproject.org/...Files/Indy10.DE.aspx
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 226

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Mo 17.10.11 17:26 
Meine DLL's waren falsch. Hab sie verworfen und versuch nun die aktuellste Version (10.5.8 ?) zu installieren.
Ich habe "OpenSSL v1.0.0e" runter geladen, allerdings setzen die DLL's mindestens Indy 10.5.5 voraus. Nur irgendwie finde ich das nirgens im Netz?
Dein Link beschränkt sich auch nur auf 10.0. Scheint als ob da einige Server tot sind. Wo kann ich mir die aktuellste Version runter laden?
Google liefert da weniger den erwünschten Erfolg :-( Ich denke eine Readme.txt, wie ich das zu installieren habe wird da wohl dabei sein oder?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Di 18.10.11 02:37 
Die aktuelle Version findest du stets hier:
indy.fulgan.com/ZIP/
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home