Ich weiß das in einem PHP-Skript:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
wird Weiterleitungen folgen. Gibt es eine Möglichkeit, Weiterleitungen mit der Befehlszeilen-cURL zu verfolgen?
Ich weiß das in einem PHP-Skript:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
wird Weiterleitungen folgen. Gibt es eine Möglichkeit, Weiterleitungen mit der Befehlszeilen-cURL zu verfolgen?
Verwenden Sie das Standort-Header-Flag:
curl -L <URL>
man curl
: "Wenn die Authentifizierung verwendet wird, sendet curl seine Anmeldeinformationen nur an den ursprünglichen Host. <...> Siehe auch --location-trusted, wie dies geändert werden kann."Ich hatte ein ähnliches Problem. Ich poste meine Lösung hier, weil ich glaube, dass sie einem der Kommentatoren helfen könnte.
Für mich war das Hindernis, dass für die Seite ein Login erforderlich war und ich dann eine neue URL über Javascript erhielt. Folgendes musste ich tun:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Beachten Sie, dass j_username und j_password der Name der Felder für das Anmeldeformular meiner Website sind. Sie müssen die Quelle der Webseite öffnen, um zu sehen, wie der Name des Felds Benutzername und der Name des Passwortfelds in Ihrem Fall lauten. Danach gehe ich eine HTML-Datei mit Java-Skript, in die die neue URL eingebettet wurde. Nachdem Sie dies analysiert haben, senden Sie es einfach erneut mit der neuen URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
quelle
Wie gesagt, um Weiterleitungen zu folgen , können Sie das Flag verwenden
-L
oder--location
:Aber, wenn Sie die Anzahl der Umleitungen begrenzen möchten , fügen Sie den Parameter
--max-redirs
quelle