Есть ли способ следить за редиректами с помощью командной строки cURL?

335

Я знаю, что в php script:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

будет следовать переадресации. Есть ли способ отслеживать перенаправления с командной строкой cURL?

Теги:
curl
redirect
command-line-interface

3 ответа

598
Лучший ответ

Используйте флаг заголовка местоположения:

curl -L <URL>

  • 1
    Это также не работает с аутентификацией в Google для доступа к таблицам. : /
  • 10
    man curl : «Когда используется аутентификация, curl отправляет свои учетные данные только на начальный хост. <...> См. также --location-trust о том, как это изменить.»
21

У меня была аналогичная проблема. Я размещаю свое решение здесь, потому что считаю, что это может помочь одному из комментаторов.

Для меня препятствием было то, что страница требовала входа в систему, а затем дала мне новый URL-адрес через javascript. Вот что я должен был сделать:

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

Обратите внимание, что j_username и j_password - это имя полей для формы входа в мой сайт. Вам нужно будет открыть источник веб-страницы, чтобы узнать, что такое "имя" поля имени пользователя и "имя" поля пароля в вашем случае. После этого я запускаю html файл с java script, в который был встроен новый URL-адрес. После синтаксического анализа это просто повторно отправьте с новым URL-адресом:

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

0

Как уже говорилось, для отслеживания перенаправлений вы можете использовать флаг -L или --Location:

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

Но, если вы хотите ограничить количество перенаправлений, добавьте параметр --max-redirs

--max-redirs <num>
  Set  maximum number of redirection-followings allowed. If -L, --location is used, this option 
  can be used to prevent curl from following redirections "in absurdum". By default, the limit
  is set to 50 redirections. Set this option to -1 to make it limitless.
  If this option is used several times, the last one will be used.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню