![]() |
Wie "öffne" ich eine URL mit einem |
Hi,
ich müsste eine Datei herunterladen. Allerdings ist in der URL ein | (was ich noch nie gesehen habe). Kein Browser lädt den "Mist". Auch wget auf Unix nicht. Leider kann ich die URL nicht veröffentlichen, deswegen nur ein Beispiel. ![]() Ich habe fast das Gefühl als wenn das gar nicht ein "normaler" Senkrechter Strich ist. Vielleicht hat ja jemand eine Idee oder weiß was das sein soll. Vielen Dank im voraus |
AW: Wie "öffne" ich eine URL mit einem |
Hast Du statt dem Pipe-Strich mal ein Fragezeichen probiert?
|
AW: Wie "öffne" ich eine URL mit einem |
Ja habe ich. Ich habe auch schon den Grafischen strich probiert. Geht alles nicht.
Ich habe das gerade mal bissl getracert. Der sucht ein Cookie. Ich denke mal das nur wenn man einmal dort angemeldet war. Ob wohl der Support sagt es würde auch mit wget gehen. Also es wurde explizit nach wget gefragt und das wurde mit ja beantwortet. Ist vielleicht ein Quereinsteiger... :shock: |
AW: Wie "öffne" ich eine URL mit einem |
So,
es ist nun definitiv. Man muss sich angemeldet haben. Sonst geht es nicht. Sorry an alle für die doofe Frage mit dem |. Ich habe mal gelesen, weiß aber nicht mehr wo, das man die Anmeldung (ist ein form und wird mit POST gesendet) das man das machen kann ohne die Seite zu laden. Ich glaube das war mit Indy. Vielleicht weiß jemand ob ich hier gelesen habe. |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
Die Login-Seite müsstest Du nur selbst laden, wenn noch irgendeine Form von zusätzlichem Parameter erwartet wird, den die Seite selbst erzeugt, wie z.B. ein CSRF-Token. |
AW: Wie "öffne" ich eine URL mit einem |
|
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
Eine Frage: Ich habe folgende HTML-FORM. Wie fülle ich die aus und wie geht es dann weiter? Muss ich die URL in action mit POST und den Daten aufrufen?
Code:
Oder soll ich diese Post wieder löschen und einen neuen Thread aufmachen?
<form action="/loginPost" method="POST" id="login-form">
<input name="form_key" type="hidden" value="Sg8D3DVpXGvFSoog"> <label for="">E-Mail-Adresse</label> <input class="form-control required-entry" type="email" id="login-user" name="login[username]" placeholder="Ihre E-Mail-Adresse"> <label for="">Passwort</label> <input class="form-control required-entry" type="password" id="login-password" name="login[password]" placeholder="Ihr Passwort"> <button class="btn btn-primary btn-block" type="button" onclick="loginForm.submit()">Anmelden</button> </form> |
AW: Wie "öffne" ich eine URL mit einem |
Da hast Du jetzt leider einen unsichtbaren Parameter namens "form_key", der sich wahrscheinlich bei jedem Aufruf ändert. Dann reicht ein POST nicht, sondern Du müsstest zuerst die Seite laden und den Key daraus ermitteln, um ihn im anschließenden Post mitzugeben.
Gibt es nicht vielleicht eine dokumentierte einfachere Möglichkeit, die Datei abzurufen oder die Login-Daten direkt beim Abrufen der Datei mitzugeben? Ich meine, wenn da zunächst wget als Lösung genannt wurde, müsste es doch auch einfacher funktionieren. |
AW: Wie "öffne" ich eine URL mit einem |
Der support hat auf die anfrage ob man es ohne Login per wget laden kann, diese Antwort geschickt.
[antwort] Hallo Herr ######, klar, sie können über die URL: ![]() [/antwort] Ich denke mal da braucht man nix mehr fragen. |
AW: Wie "öffne" ich eine URL mit einem |
Naja, bevor Du Dir jetzt viel Arbeit machst, würde ich dann doch mal nachhaken und darauf hinweisen, dass es per wget nicht geht, weil ein Login erforderlich ist. Vielleicht fragt der Support dann mal jemanden, der sich auskennt :-)
Vielleicht ist es auch einfach nur ein Konfigurationsfehler, dass für den Download ein Login erforderlich ist. Oder wenn es ein Standardsystem ist, etwa ein Webshop oder ähnliches, kann man schauen, ob es beim Hersteller eine Doku gibt. |
AW: Wie "öffne" ich eine URL mit einem |
Hi,
ich mache das nun so wie ich es hier gefunden habe. ![]() Diesen Key kann ich mit WebBrowser1.OleObject.Document.Forms.item(0).Eleme nts.item('form_key').value einlesen. Danke an alle. |
AW: Wie "öffne" ich eine URL mit einem |
Für einen simplen Download würde ich keinesfalls eine Browserkomponente verwenden, wenn nicht Skripte erforderlich sind!
Den Key kannst du auch per Indy IdHttp.Get abrufen und aus dem Quelltext lesen. Mit dem Cookiemanager kannst du auch Cookies nutzen. Und das Formular besteht nur aus Abfrageparametern, die du auch an Indy übergeben kannst. |
AW: Wie "öffne" ich eine URL mit einem |
Klar, mit dem Browser geht das, ist nur keine besonders schlanke Lösung. Machst Du dann auch den Download damit?
Es erscheint auch nicht ganz zukunftssicher. Falls das Internet-Explorer-Control später aus Windows entfernt wird, musst Du umstellen auf Edge. Dann vielleicht lieber gleich damit machen? |
AW: Wie "öffne" ich eine URL mit einem |
Das wird nur ein Tool was ein paar mal gebraucht wird und dann "vergessen" wird. Deswegen brauche ich bei dem Teil nicht so drauf achten ob es demnächst noch läuft.
@jaenicke, du meinst also ich solle den Webseiten Quellcode laden und dann quasi zu fuß durchsuchen? Und ich weiß immer noch nicht was ich mit den Daten für eine URL aufrufen muss. Das was in action steht? |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
Kannst Du Dir auch vorher alles anschauen in den Webdeveloper-Tools vom Browser im Netzwerk-Tab und ggf. vorher mal mit Curl auf der Kommandozeile testen, ob es so funktionieren würde., bevor Du es mit Delphi umsetzt. |
AW: Wie "öffne" ich eine URL mit einem |
Hört sich nach Token oder ähnlich an.
Zum Rumprobieren könntest Du den RestDebugger der IDE verwenden, damit kann man eine ganze Menge ausprobieren und am Ende sogar eine Unit mit den Zugriffskomponenten erstellen lassen. ![]() Zu allem Überfluss sind die Sourcen auch noch vorhanden, unter Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Eine Frage habe ich noch. Der TWebBrowser nutz leider den IE11. Die Webseite wo ich hinmuss läuft nicht damit. Ich habe soweit alles Fertig. Wie kann ich dem beibringen das er den Edge nutzt. Ich habe zwar auch WebView4Dwlphi installiert, aber da weiß ich leider nicht wie ich die form ausfüllen soll.
Vielen Dank im voraus PS.: @Rolle62, ich habe Delphi 2007. |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
![]() |
AW: Wie "öffne" ich eine URL mit einem |
Das ist zwar sehr nett gemeint, aber das Ding ist schon Fertig. Ich habe halt nur das Problem das ich nirgends finde wie man TWebBrowser "sagt" er soll Edge nehmen und nicht IE11. Da die Seite nicht auf IE11 läuft.
|
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
Das Ausfüllen des Form (Username und Passwort) kannst Du ja mit einem Javascipt-Call machen. Schau Dir die Demo "Minibrowser" bei Webview4Delphi an und suche nach "ExecuteScriptWithResult". Im Javascript musst Du die Inputs ansprechen, also etwa document.getElementById('login-user').value = 'Dein UserName' |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Leider habe ich keine Ahnung von Java. Was ich wohl hinbekomme würde das was du geschrieben hast.
document.getElementById('login-user').value = 'Dein UserName' Aber wie Klicke ich? Muss ich da auch eine Schleife haben und den Anmelde Button suchen? Sorry, nicht böse sein. Aber ich bin in Java ein echter DAU. |
AW: Wie "öffne" ich eine URL mit einem |
Java ist hier nicht nötig, nur ein paar Zeilen Javascript, das ist was ganz anderes.
Du müsstest Dir in einem String in Delphi das Javascript zusammenbauen und dann im Browser aufrufen. Die einzelnen Elemente, die Du brauchst, kannst Du alle mit document.getElementById ansprechen. Die ID steht ja im HTML-Quelltext. Den Button brauchst Du nicht. Der macht auch nichts anderes, als das Form abzuschicken mit "loginForm.submit()" und da hast Du auch gleich den Code, den Du brauchst.
Code:
Nur aus dem Gedächtnis, nicht getestet
document.getElementById("login-user").value = "[Dein Benutzername]";
document.getElementById("login-password").value = [Dein Passwort]"; document.getElementById("loginForm").submit(); Nur, wenn das so klappt, musst Du ja als nächstes die Download-URL aufrufen und an die Datei kommen. Funktioniert das schon? |
AW: Wie "öffne" ich eine URL mit einem |
Huhu,
super vielen dank, ich werde es nachher Probieren. Muss leider erst einen Arzt Termin wahrnehmen. Also wenn ich das per Browser mache klappt es. Damit ich denen nicht auf S*** gehe habe ich einfach mal die form genommen und in eine leere Seite gepackt. Diese habe ich dann hier Lokal auf einen Apache gespielt. Damit konnte ich das wunderbar Testen. Aber da fiel mir schon auf das die form die ID login-form ist (ich hatte dann den - rausgenommen) die aber loginForm aufrufen. Das kann halt der IE11 nicht. Nochmal danke. Mal sehen ob es so klappt. |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Nein, war nicht der einzige fehler. Da kamen zig Script Fehler. Ich habe es grade (da ich noch ein bissl Zeit habe) mit dem Simple Browser probiert. Laut Console findet er das auch nicht. Auch mit dem Aktuellen Edge geht es nicht weiter. Nun verstehe ich nix mehr. Oder ob loginForm ein Script ist was die aufrufen. Ich schau nochmal auf die Seite.
Fehler:
Code:
Failed to load resource: the server responded with a status of 404 (Not Found)
index.html:18 Uncaught ReferenceError: loginForm is not defined at HTMLButtonElement.onclick (index.html:18:102) |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
Wenn Du willst, schick mir den Link zur Login-Seite per PN (ohne sonstige Daten natürlich) und ich schaue mal direkt. Sonst wird das hier auch zu lang im Forum glaube ich. |
AW: Wie "öffne" ich eine URL mit einem |
Ich habe mir das gerade mit httrack geladen und lokal abgelegt. Klappt. Nun kann ich gleich schauen (wenn ich wieder da bin) ob das mit dem Java klappt.
|
AW: Wie "öffne" ich eine URL mit einem |
So,
also ich habe das mit der Demo SimpleBrowser probiert. Er füllt user und password aus, aber das "klicken" klappt nicht. Wenn ich dann mit der Maus auf Anmelden klicke komme ich sofort weiter. Das heißt er hat die Daten richtig eingetragen. Achso, dieses LoginForm ist ein Script was aufgerufen wird. Nun zur Kern frage, wie kann ich den Klick erzeugen? Vielleicht noch eine Info, die form die ich in den ersten Beiträgen gepostet habe nimmt den "Klick" an. Aber da musste ich auch die action ändern. Die habe ich auf ein PHP umgeleitet damit ich sehe ob der die Parameter richtig übergeben hat. |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Das ist das was ich mache...
Delphi-Quellcode:
WVBrowser1.ExecuteScript('document.getElementById("login-user").value = "#########";');
WVBrowser1.ExecuteScript('document.getElementById("login-password").value = "#########";'); WVBrowser1.ExecuteScript('document.getElementById("loginForm").submit();'); |
AW: Wie "öffne" ich eine URL mit einem |
Da, dann probier mal in der dritten Zeile das "loginForm.submit()", welches auch der Button auslösen würde.
Du kannst auch alle JavaScript-Befehle hintereinander in eine Zeile schreiben und mit einem ExecuteScript aufrufen. |
AW: Wie "öffne" ich eine URL mit einem |
Ich habe es gefunden. Ich muss den id der form übergeben, also login-form dann klappt es.
1.000 Dank nochmal für deine Hilfe Noch eine letzte Frage, wie sage ich dem ding wo er die Datei hin speichern soll. Die landet immer in Download. |
AW: Wie "öffne" ich eine URL mit einem |
Ich dummerle,
das wird landet natürlich, weil ja der Edge genutzt wird, in der Directory die dort eingestellt ist. Ist nix eingestellt dann wohl in Download. Nochmals Danke für alles |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
WVBrowser1.Profile.DefaultDownloadFolderPath := [Pfadname] |
AW: Wie "öffne" ich eine URL mit einem |
Zitat:
|
AW: Wie "öffne" ich eine URL mit einem |
Sorry das es gedauert hat. Ich musste erstmal das aktuelle Installieren, weil bei dem was ich drauf hatte gab es Profile nicht. Nun hab ich das auch und direkt probiert. Klappt einwandfrei. Ändert auch wirklich nix am Edge. :thumb::thumb::thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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