Wiem, że w skrypcie php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
będzie podążał za przekierowaniami. Czy istnieje sposób śledzenia przekierowań za pomocą wiersza polecenia cURL?
Wiem, że w skrypcie php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
będzie podążał za przekierowaniami. Czy istnieje sposób śledzenia przekierowań za pomocą wiersza polecenia cURL?
Użyj flagi nagłówka lokalizacji:
curl -L <URL>
man curl
: „Gdy używane jest uwierzytelnianie, curl wysyła tylko swoje poświadczenia do początkowego hosta. <...> Zobacz także --local-trust, jak to zmienić.”Miałem podobny problem. Zamieszczam tutaj moje rozwiązanie, ponieważ uważam, że może to pomóc jednemu z komentujących.
Dla mnie przeszkodą było to, że strona wymagała logowania, a następnie dała mi nowy adres URL za pomocą javascript. Oto, co musiałem zrobić:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Pamiętaj, że j_username i j_password to nazwa pól formularza logowania do mojej witryny. Będziesz musiał otworzyć źródło strony internetowej, aby zobaczyć, jaka jest „nazwa” pola nazwy użytkownika i „nazwa” pola hasła. Następnie przechodzę do pliku HTML ze skryptem Java, w którym osadzony jest nowy adres URL. Po przeanalizowaniu tego, po prostu prześlij ponownie z nowym adresem URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
źródło
Jak już wspomniano, aby podążać za przekierowaniami , możesz użyć flagi
-L
lub--location
:Ale jeśli chcesz ograniczyć liczbę przekierowań , dodaj parametr
--max-redirs
źródło