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?
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?
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.
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 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.