2013-08-27 3 views
301

Я знаю, что в PHP скрипт:Есть ли способ следовать редиректам с командной строкой Curl

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

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

+9

Я искал PHP решения и приземлились здесь. Благодарю. – dchayka

ответ

515

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

curl -L <URL>

+1

Это не работает с аутентификацией с Google для доступа к электронным таблицам. :/ – fatuhoku

+7

'man curl':« Когда используется аутентификация, curl отправляет свои учетные данные только исходному хосту. <...> См. Также --location-trusted, как это изменить ». – hudolejev

+11

@posit bit.ly проверяет агент пользователя, но вы можете обманывать его флажком '--user-agent' или' -A' –

18

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

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

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

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

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

Смежные вопросы