Gibt es eine Möglichkeit, Weiterleitungen mit der Befehlszeilen-cURL zu verfolgen?

456

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?

LDN
quelle

Antworten:

762

Verwenden Sie das Standort-Header-Flag:

curl -L <URL>

Nathan Kuchta
quelle
1
Dies funktioniert auch nicht mit der Authentifizierung bei Google, um auf die Tabellen zuzugreifen. : /
Fatuhoku
13
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."
Hudolejev
25

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>

user3817445
quelle
15

Wie gesagt, um Weiterleitungen zu folgen , können Sie das Flag verwenden -Loder --location:

curl -L http://www.example.com

Aber, wenn Sie die Anzahl der Umleitungen begrenzen möchten , fügen Sie den Parameter--max-redirs

--max-redirs <num>

Legen Sie die maximal zulässige Anzahl von Umleitungsfolgen fest. Wenn -L, --locationverwendet wird, kann diese Option verwendet werden, um zu verhindern, dass Curl Umleitungen "in absurdum" folgt. Standardmäßig ist das Limit auf 50 Umleitungen festgelegt. Setzen Sie diese Option auf -1, um sie unbegrenzt zu machen. Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.

freedev
quelle