curl для составления списка перенаправленных страниц - PullRequest
1 голос
/ 06 декабря 2011

Предположим, у меня есть скрипт bash, который просматривает файл, содержащий список старых URL-адресов, которые были перенаправлены.

curl --location http://destination.com обработает страницу, следуя перенаправлению. Однако меня интересует не содержание, а место перенаправления, чтобы я мог обновить свои записи.

Что такое параметр командной строки для curl для вывода, что это новое местоположение для URL?

Ответы [ 3 ]

9 голосов
/ 06 декабря 2011

Вы хотите оставить флаг --location/-L и использовать -w, проверяя переменную redirect_url.curl -w "%{redirect_url}" http://someurl.com должен это сделать.

Используется в сценарии:

REDIRECT=`curl -w "%{redirect_url}" http://someurl.com`
echo "http://someurl.com redirects to: ${REDIRECT}"

со страницы руководства curl :

-w, --write-out <format>

Сделать отображение скручиванияинформация о stdout после завершенной передачи.Формат представляет собой строку, которая может содержать простой текст, смешанный с любым количеством переменных.Формат может быть указан в виде литеральной «строки», или вы можете сделать так, чтобы curl считывал формат из файла с помощью «@filename», и указывал curl читать формат из stdin, который вы пишете «@ -».

Переменные, присутствующие в выходном формате, будут заменены значением или текстом, которые, по мнению curl, подходят, как описано ниже.Все переменные указаны как% {variable_name}, и для вывода нормального% вы просто пишете их как %%.Вы можете вывести новую строку, используя \ n, возврат каретки с \ r и символ табуляции с \ t.

ПРИМЕЧАНИЕ: % -символ - это специальный символ в win32-среда, в которой все значения% должны быть удвоены при использовании этой опции.

Доступны следующие переменные:

...
redirect_url Когда HTTP-запрос был выполнен без -Lчтобы следовать перенаправлениям, эта переменная покажет фактический URL, на который перенаправит .(Добавлено в 7.18.2)
...

2 голосов
/ 06 декабря 2011

Это может сработать (как отправная точка)

curl -sI google.com | head -1 | grep 301 | wc -l
0 голосов
/ 06 декабря 2011
man curl

затем

search redirect_url

redirect_url Когда был сделан HTTP-запрос без -L для отслеживания перенаправлений, эта переменная покажет фактический URL-адрес, который будет перенаправленВам.(Добавлено в 7.18.2)

переменная выше для -w/--write-out <format>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...