![]() |
TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Hallo Leute,
also ich habe ein Frage: Ich habe eine HTML Site die mit JS einen iframe erzeugt. Den habe ich mit TWebBrowser extrahiert. Und ich kann nun den Iframe extra zum Saugen des PDFs aufrufen. Doch wie kann ich den Stream in TWebBrowser mitsichern? Mit Ole es nicht. oder? Hier meine Frage auf StackOverflow: ![]() Vielleicht kann mir hier jemand helfen. Besten DANK.:shock: |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Du möchtest eine PDF-Datei. Das was der Browser dir anzeigt ist nicht zwangsläufig das gleiche. Vielleicht hat der auch wiederum ein Skript (z.B. pdf.js) welches die PDF darstellt.
Versuch doch an die URL zur PDF zu kommen und lade das dann ganz normal herunter. |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Liste der Anhänge anzeigen (Anzahl: 1)
Ja DANKE, das habe ich auch schon versucht. Doch leider wird das PDF durch eine URL das ein JS Script drin hat erst geholt. Dh. bei der URL bekomme ich eine html mit Js.
Ich habe hier das ganze als DEMO gezippt. Wäre schön, wenn mir jemand sagen könnte, wie ich das PDF, das ja laut fiddler am PC ist, als File sichern kann. Besten DANK:roll: Lt. ![]() Ich habe es mit SBB v15 als HTTPSCLIENT versucht, doch da ja nur ein TWebBrowser das JavaScript interpertieren kann, hatte ich da auch keine Möglichkeit. Denn das JS sieht so aus:
Delphi-Quellcode:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta http-equiv="refresh" content="5; URL='/MSDS/MSDS/PrintMSDSAction.do?name=msdspdf_210371032458650&bm-verify=AAQAAAAC_____wrLcWhUWFNc8xbwEKUlZCANK_Zvh-QZ_ztugh9dPd9wrHTBW4WGl05v22JoZZ8gEBXdDPvvr7e73QXlMppgPBevLKUSHledmXtdziB-Ra72p7plSt0MrYDRiXyGEZP2IxWu9Fv2wYNJclRhQ0anzM4jfKShmAi5iK6kIAEx5mJh_wKTqsGLLLUelYlgq4OBhVqIzPaFnj7upQT8c8osC7Wq5Dz3JBwVqdI644vtcz9IiMxf5g4f1adaJ6rxCatr6Tq1PwWxuvOqbTA3zxx41g8H8vx9zorXQABxYf0pPKx07O3jVhqFvZd0vLA'" /> <title>Challenge</title> <script> var i = 1615541100; var j = i + Number("8946" + "7607"); </script> </head> <body style="background-color: ;"> <noscript> <iframe style="border: none; height: 100%; width: 100%;" src=""></iframe> </noscript> <script> var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("loadend", function() { try { var data = JSON.parse(xhr.responseText); if (data.hasOwnProperty('reload')) { if (data["reload"] == true) { document.location = document.location.href.replace(/[&?]bm-verify=.*/, ""); } } else if (data.hasOwnProperty('location')) { window.location.href = data["location"] } else { location.reload(); } } catch (e) { var data = {} location.reload(); } }); xhr.open("POST", "/_sec/verify?provider=interstitial", false); xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(JSON.stringify({ "bm-verify": "AAQAAAAC/////z9XYiAOFlcj9Lt0eFT3RUlm+aKxHYnvTPRAFXSNRSLcepeWiZZqkj2xcS2TL3iUZB03gFDHM5EI3xpViqBjhiGbvCXDDPplY9dJg4c/B3DIKbWDIimbkOv7UQZ/vHNoV+WZh/dYICBmxqZzRbRAC0LBcg3dzoQ3KGZYsd1NDyQbz/9uM6g00qlpfmQuYFfakmWzatEtey/keOo+GJJ7KTG3IONwFfyj94Fvf2MK9s1XKTU5bmt6xOm7EufK2C6b8JUPAfQwoYcjqlslOequo3SO+3Yaa7sS/fCw5U34ChSaTAGeqb2CkHjDYXt3XV80A15dkMzJNTE7A/I=", "pow": j })); </script> </body> </html> |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Nur weil die PDF kostenlos runtergeladen werden dürfen, heißt das nicht, dass diese PDF auch "automatisiert" runtergeladen werden dürfen.
Wenn doch, dann gibt es bestimmt eine passende API. Goggle fand nichts, aber deren Technischer Support wird dabei bestimmt helfen können. |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Liste der Anhänge anzeigen (Anzahl: 2)
Danke, ja sonst müßte ich die PDFs manuell saugen.
Wenn man automatischen Download unterbinden möchte, kann ja Captchas machen. Oder? Es ist aber ja auch eine technische Herausforderung, das zusammen zu bringen. Hier mal der FIDDLER request und Response. |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Zitat:
|
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Hahaha - ja da haste recht.
Ich hab eine Lösung. Ich schicke einfach Keystrokes in die App. also wenn es im TWebBrowser angezeigt wurde, einfach SHIFT-CTRL-S für S (peichern), da ja der Acrobat PDF Viewer in der Componente dies erlaubt. Hahahha. Schade, dass es direkt mit Http so einfach nicht geht. |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Wenn ich alles richtg verstanden habe und du Zugriff auf den Quellcode hast, sollte es keine grosse Sache sein, aufgrund des JS die Datei per TIdHTTP runterzuladen. In dem JS steht ja eigentlich alles drin, was du wissen musst. Du musst da ein POST auf die Adresse machen und als Body das entsprechende JSON (mit dem Key oder as immer das genau ist) aus dem JS einfügen. Als Antwort erhälst du dann vermutlich das PDF.
Code:
Hier steht eigentlich alles was du wissen musst. Was du da nun heraussuchenn musst, sind folgende Angaben:
xhr.open("POST", "/_sec/verify?provider=interstitial", false);
xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(JSON.stringify({ "bm-verify": "AAQAAAAC/////z9XYiAOFlcj9Lt0eFT3RUlm+aKxHYnvTPRAFXSNRSLcepeWiZZqkj2xcS2TL3iUZB03gFDHM5EI3xpViqBjhiGbvCXDDPplY9dJg4c/B3DIKbWDIimbkOv7UQZ/vHNoV+WZh/dYICBmxqZzRbRAC0LBcg3dzoQ3KGZYsd1NDyQbz/9uM6g00qlpfmQuYFfakmWzatEtey/keOo+GJJ7KTG3IONwFfyj94Fvf2MK9s1XKTU5bmt6xOm7EufK2C6b8JUPAfQwoYcjqlslOequo3SO+3Yaa7sS/fCw5U34ChSaTAGeqb2CkHjDYXt3XV80A15dkMzJNTE7A/I=", "pow": j })); 1. Die URL: http..../_sec/verify?provider=interstitial 2. Der ContentType in TIdHTTP auf 'application/json' setzen. 3. Das JSON auslesen und im Body des TIdHTTP einfügen.
Code:
4. Das Post von TIdHTTP aufrufen und die Antwort, welches dann vermutlich das PDF ist, speichern.
{
"bm-verify": "AAQAAAAC/////z9XYiAOFlcj9Lt0eFT3RUlm+aKxHYnvTPRAFXSNRSLcepeWiZZqkj2xcS2TL3iUZB03gFDHM5EI3xpViqBjhiGbvCXDDPplY9dJg4c/B3DIKbWDIimbkOv7UQZ/vHNoV+WZh/dYICBmxqZzRbRAC0LBcg3dzoQ3KGZYsd1NDyQbz/9uM6g00qlpfmQuYFfakmWzatEtey/keOo+GJJ7KTG3IONwFfyj94Fvf2MK9s1XKTU5bmt6xOm7EufK2C6b8JUPAfQwoYcjqlslOequo3SO+3Yaa7sS/fCw5U34ChSaTAGeqb2CkHjDYXt3XV80A15dkMzJNTE7A/I=", "pow": j } Das Auslesen der URL und des JSON sollten keine Hexerei sein. Vermutlch beibt die URL für alle geliche und dann würdest du nur jeweils das JSON mit dem "Key" benötigen. EDIT: Habe eben mal angeschaut was eigentlich der Rest des JS macht. Du bekommst da ein weiteres JSON retour, in dem du den Link zum PDF finden solltest der mit dem du zumindest mal weiterkommst. |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Lieber ROlf, besten DANK - ich habe wieder viel gelernt von Dir.
Mit Js habe ich fast noch keine Erfahrung. Ich werde es testen. :thumb: |
AW: TWebbrowser-problem: Wie save ich PDF nach NAvigate to url
Hallo lieber Rolf,
ich habe es zwar nicht mit Indy probiert, sondern mit Secure Black Box von Eldos, doch komme ich auf keinen grünen Zweig. Auch habe ich in dem Jason das "pow", da ja j zurückgibt, und das im Script aus 3 Zahlen berechnet wird, errechnet, doch weiss ich nicht so rechte wieso es nicht klappt. Kannst Du mir bitte deinen Test als Source posten, wo du das mit TidHTTP machst? Besten DANK |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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