it-swarm.com.de

Gibt es eine Möglichkeit, Weiterleitungen mit der Befehlszeile cURL zu folgen?

Ich weiß, dass in einem PHP-Skript:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

wird Weiterleitungen folgen. Gibt es eine Möglichkeit, Weiterleitungen mit der Befehlszeile cURL zu folgen?

408
user61629

Verwenden Sie das Standort-Header-Flag:

curl -L <URL>

682
Nathan Kuchta

Ich hatte ein ähnliches Problem. Ich poste meine Lösung hier, weil ich glaube, dass es einem der Kommentatoren helfen könnte.

Für mich bestand das Hindernis darin, dass die Seite ein Login erforderte und mir dann eine neue URL über Javascript gab. 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 ist. Sie müssen die Quelle der Webseite öffnen, um zu sehen, wie der "Name" des Felds "Benutzername" und der "Name" des Felds "Kennwort" in Ihrem Fall lautet. Danach gehe ich eine HTML-Datei mit Java Skript, in die die neue URL eingebettet wurde. Nach dem Parsen reicht es aus, die neue URL erneut einzureichen:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>

23
user3817445

Wie gesagt, m Weiterleitungen zu folgen Sie können das Flag -L oder --location verwenden:

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

Wenn Sie jedoch die Anzahl der Weiterleitungen begrenzen möchten, fügen Sie den Parameter --max-redirs hinzu.

--max-redirs <num>

Maximale Anzahl der zulässigen Weiterleitungsfolgen festlegen. Wenn -L, --location verwendet wird, kann diese Option verwendet werden, um zu verhindern, dass das Einrollen den Umleitungen "absurd" 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.

8
freedev