607 Stimmen

Gibt es eine Möglichkeit, Weiterleitungen mit dem Befehlszeilen-CURL zu verfolgen?

Ich weiß, dass in einem PHP-Skript:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Weiterleitungen folgen wird. Gibt es eine Möglichkeit, Weiterleitungen mit dem Befehlszeilen-CURL zu folgen?

1018voto

Nathan Kuchta Punkte 13192

Verwenden Sie die Location-Header-Flagge:

curl -L 
curl --location   # oder (dasselbe)

58voto

freedev Punkte 20667

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

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

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

--max-redirs 

Setzen Sie die maximale Anzahl von Weiterleitungen, die erlaubt sind, fest. Wenn -L, --location verwendet wird, kann diese Option verwendet werden, um curl daran zu hindern, Weiterleitungen "ins Absurde" zu folgen. Standardmäßig ist die Grenze auf 50 Weiterleitungen gesetzt. Setzen Sie diese Option auf -1, um sie unbegrenzt zu machen. Wenn diese Option mehrmals verwendet wird, wird die letzte verwendet.

29voto

user3817445 Punkte 451

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

Bei mir lag das Hindernis darin, dass die Seite eine Anmeldung erforderte und mir dann eine neue URL über JavaScript gab. Hier ist, was ich tun musste:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password" 

Beachten Sie, dass j_username und j_password der Name der Felder für das Anmeldeformular auf meiner Website sind. Sie müssen den Quellcode der Webseite öffnen, um zu sehen, wie der 'Name' des Benutzernamens und das 'Name' des Passwortfeldes in Ihrem Fall lauten.

Danach bekam ich eine html-Datei mit JavaScript, in der die neue URL eingebettet war. Nachdem ich dies herausgefiltert hatte, einfach mit der neuen URL erneut absenden:

curl -c cookiejar -g -O -J -L -F "j_username=username" -F "j_password=password"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X