Per Batch von https, einloggen und datei downloaden
Ich soll per Batch jede Nacht eine Datei von einer Intertseite downlaoden:
Download der Datei "PREISDAT.CSV" in das Verzeichnis "C:\Download".
Ich habe es schon mit cURL versucht, aber damit scheitert es schon am Login.
Kann mir jemand dabei helfen?
Vielen Dank vorab.
https://www.axro.de/transfer/
Login: Benutzer123
Passwort: testpwd
Sprache: Deutsch
Download der Datei "PREISDAT.CSV" in das Verzeichnis "C:\Download".
Ich habe es schon mit cURL versucht, aber damit scheitert es schon am Login.
Kann mir jemand dabei helfen?
Vielen Dank vorab.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1058447296
Url: https://administrator.de/contentid/1058447296
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
24 Kommentare
Neuester Kommentar
Die URL für den POST Versand lautet: https://www.axro.de/transfer/index.php?action=login&order=name&s ...
Die Parmenter welche Übergegen werden sollen:
p_user
p_pass
lang
also müsste die Curl Anfrage in etwa so aussehen:
Zertifikat-Fehler evtl. mit -k (insecure).
Die Parmenter welche Übergegen werden sollen:
p_user
p_pass
lang
also müsste die Curl Anfrage in etwa so aussehen:
curl -X POST --data "p_user=Benutzer123" --data "p_pass=testpwd" --data "lang=en" ^ (neuer Zeilenumbruch in Windows) und anschliessend Url, also https://www.axro.de/transfer/index.php?action=login&order=name&srt=yes
Zertifikat-Fehler evtl. mit -k (insecure).
Naja, was soll ich sagen. Schau dass du rausfindest, wie Curl deine URL geparst haben will (kann sein das ein einfaches " " reicht oder evtl. ' '). Bei mir sind es eben doppelte Anführungszeichen. Ohne das wirst du immer eine Fehlermeldung bekommen.
Du brauchst zusätzliche Optionen wie z.B
Wenn du mit den Requests nicht klar kommst, nutze die DEV-Tools deines Browsers bzw. schau dir die Requests mittels eines interception Proxys an. Mehr kann ich ohne echte Login-Daten nicht für dich tun, weil ich ja nicht mehr sehe.
Du brauchst zusätzliche Optionen wie z.B
-L (follow redirects)
oder --next
sowie zum Speichern -o "C:\Download\PREISDAT.CSV"
.Wenn du mit den Requests nicht klar kommst, nutze die DEV-Tools deines Browsers bzw. schau dir die Requests mittels eines interception Proxys an. Mehr kann ich ohne echte Login-Daten nicht für dich tun, weil ich ja nicht mehr sehe.
Servus,
mangels Login-Daten zum Testen probiers mit folgendem Powershell-Skript
Grüße Uwe
mangels Login-Daten zum Testen probiers mit folgendem Powershell-Skript
$username = 'MyUser'
$password = 'Passw0rd'
$result = iwr 'https://www.axro.de/transfer/index.php?action=login&order=name&srt=yes' -Body @{p_user=$username;p_pass=$password;lang='de'} -Method Post -SessionVariable ws
$link = $result.Links | ? href -match 'PREISDAT\.CSV' | select -F 1 -Expand href
if ($link){
iwr $link -WebSession $ws -OutFile 'C:\Download\PREISDAT.CSV'
}
@weltklasse, könntest du das ganze bitte noch in CodeTags (zweites Symbol von Link (</>)) poste, sodass es übersichtlich lesbar und richtig formatiert wird, sodass keine Smileys/Emoticons und Zeilenumbrüche/angezeigt werden?
Zitat von @weltklasse:
Leider habe ich noch keine Lösung. Weder für den Lösungsansatz über cURL, noch über PowerShell.
? Und welches Ergebnis hast du nach meiner Anpassung des Codes oben erhalten? Ich hatte meinen Code oben entsprechend korrigiert! No response from your side no correction, du verstehst! Wenn du mir temp. Zugang zu der Seite gibst kann ich es auch entsprechend testen, oder wenn das nicht geht können wir das auch direkt auf deinem Client zusammen machen. Das ist ja ehrlich gesagt Pillepalle und sollte sofort zum fliegen kommen.Leider habe ich noch keine Lösung. Weder für den Lösungsansatz über cURL, noch über PowerShell.
Dann lass dir mal die Links für das Object $result in der Konsole anzeigen
ob dort der entsprechende Link für den Download mit dabei ist, ansonsten kannst du, wenn der DL Link sowieso immer gleich bleibt, diesen für die eingeloggte Websession($ws) angeben
Ansonsten, Angebot steht.
$result.Links
$username = 'MyUser'
$password = 'Passw0rd'
$result = iwr 'https://www.axro.de/transfer/index.php?action=login&order=name&srt=yes' -Body @{p_user=$username;p_pass=$password;lang='de'} -Method Post -SessionVariable ws
iwr "https://www.axro.de/transfer/index.php?action=download&item=PREISDAT.CSV&order=name&srt=yes" -WebSession $ws -OutFile 'C:\Download\PREISDAT.CSV' -verbose