У меня в .csv файле будет 1000 с псевдонимами / сокращенными ссылками (например, bit.ly и т.д.). Мне нужно выяснить, куда они перенаправляются. Есть ли простая программа, которая может выполнить эту задачу?
3 ответа
Если вы можете найти способ сохранить файл в виде простого текста с одним URL-адресом на строку, вы можете использовать следующий скрипт на компьютере Linux/MacOS/* nix или Cygwin в Windows, чтобы выложить текстовый файл с URL-адресами.
#!/bin/bash
rm resolved_urls.txt
for url in $(cat url.txt); do
wget -S "$url" 2>&1 | grep ^Location >> resolved_urls.txt
done
Скопируйте приведенный выше текст в файл с именем resol.sh, используя nano
если вам нужно, сделайте его исполняемым с помощью chmod +x resolve.sh
, назовите файл с URL-адресами bit.ly и т.д. В url.txt, убедившись в том, что он находится папку в качестве файла resol.sh и выполните его с помощью ./resolve.sh
. Он создаст файл с именем «resolved_urls.txt» с исходным URL и его разрешенным аналогом.
Выход с
http://bit.ly/1auRnQ9
http://bit.ly/19ZkTAI
в url.txt есть
http://bit.ly/1auRnQ9 --> Location: http://www.google.com/ [following]
http://bit.ly/19ZkTAI --> Location: http://superuser.com/ [following]
Этот сценарий далек от совершенства и может вызывать гнев различных серых бород Unix, но по крайней мере он работает для bit.ly. Дайте мне знать, если у вас есть вопросы, связанные с * nix.
Вы не указали свою ОС.
Но в Linux (с установленными Curl и awk) вы можете сделать что-то вроде этого:
#!/bin/bash
while read LINE ; do
NEWURL=$(curl -sIL $LINE 2>&1 | awk '/^Location/ {print $2}' | tail -n1;)
echo "$LINE ; $NEWURL"
done < urls.txt
Обратите внимание, что сайты, которые не перенаправляют, не будут иметь результата после старого.
http://linkpeelr.appspot.com/ делает это на экране, но есть API, который вы можете использовать на http://longurl.org/