22. September 200817 j Hallo, ich beisse mir hier noch die Zähne aus und weiss einfach nicht mehr weiter.... Ich habe folgende Aufgabenstellung: Mittels einem Scheduler ein Script ansteuern, dass sich auf einer vorgegebenen Seite einloggt und die hinterlegte CSV Datei downloadet. Dies soll mit Curl oder im Notfall mit Wget geschehen. Das Script soll über UNIX Kommandozeilen ausgeführt werden. Ich habe im Scheduler alles drin, alles passt. Es muss also an Curl liegen dass es nicht funktioniert... Beziehungsweise an meinem Brett vorm Kopf Die Seite hat eine Userform hinterlegt, in der username und password eingetragen werden müssen. Dazu kommt ein Anmelden Button, der aber keinen expliziten Namen aufweisst. Der Buttonname ist mir also nicht bekannt. Zusätzlich ist es hier unabdinglich einen Proxy zu verwenden. Folgendes Script habe ich nun geschrieben, mehrfach umgeschrieben und immer bleibe ich bei der Authentifizierung auf der Seite stehen und komme nicht weiter: (Der Übersichthalber nicht in einer Zeile ^^) curl -x "proxy: port" (Proxy festlegen - Blank wegen Smilies eingefügt) -U "proxyuser: proxypassword" (Proxy User und PW festlegen - Blank wegen Smilies eingefügt) --url "https://meine.downloaddomain.de/" (URL der Loginseite) -d "username=test&password=test" (Login und Passwort) -k (Seite ohne Certs erlauben) -o /Ordner/Ablage/Datei.csv (Dahin soll die Datei gedownloadet werden) Als Ergebnis speichert er mir eine CSV die den Quellcode der URL beinhaltet... Das ist leider nicht das gewünschte Ergebnis... Es wäre sehr nett wenn mir jemand dabei helfen könnte... Nach stundemlangen Googlen und PHP Scripte lesen weiss ich nimmer weiter.. Habe erst 2 Mal das gleiche Problem gelesen und keiner antwortete drauf.. Grüße Pragor Bearbeitet 22. September 200817 j von Pragor
22. September 200817 j Hat leider nichts geändert. Ist denn die oben beschriebene Syntax soweit in Ordnung? Muss dass Zielsystem spezielle Voraussetzungen haben? Oder reicht es den Buttonnamen zu bekommen und mittels press=buttonname anzugeben? Hatte sowas auf ner englischen seite gesehen aber nur für http.. Grüße Christian
22. September 200817 j das zielsystem muss HTTP(S) können. die zielurl muss genau jene sein, die in der form action mit der method POST angegeben ist. der inhalt des parameter -d entspricht IMO genau jenem, der via der formfelder username und password eingegeben wird. insofern kann ich mir nicht vorstellen, warum curl nicht *irgendeine* meldung des servers liefern sollte (es sei denn, HTTPS ist nicht möglich - denn dann dürfte auch kein connect auf port 443 möglich sein, auf dem der webserver lauscht). s'Amstel
30. September 200817 j OK, danke für die hilfe. Es war dann ein anderes Problem was mich gehindert hat. Hier meine Lösung für einen Download auf einer HTTPS Seite: #!/bin/bash echo "rm /cookie.txt" rm cookie.txt echo "rm download.htm" rm download.htm echo "cd /curl/bin" cd /curl/bin echo "Login durchführen - Cookies speichern" curl -x "Proxy" -U "Proxyuser" -v -k -O -c cookie.txt -d "Username&Password&login-form-type=Buttonname" https://Download.Seite.de/login.form echo "Cookie wird gelesen - Download Seite geöffnet - JSESSION Cookie gespeichert" curl -x "Proxy" -U "Proxyuser" -v -k -b cookie.txt -c cookie.txt -o /download.htm "https://Download.Seite.de/downloadlistenseite" echo "Ermitteln der Download-URL" URL_DOWNLOAD=$(awk -F\" '/Suchwort/ { print $2; }' /download.htm) echo "Ausgabe der Download-URL zur Kontrolle: $URL_DOWNLOAD" echo "Download durchführen" curl -x "Proxy" -U "Proxyuser" -v -k -o ausgabedatei.csv -b cookie.txt "https://Download.Seite.de/$URL_DOWNLOAD" Eventuell kann das ja irgendwem noch von Nutzen sein! Grüße Pragor
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.