Como resolvo um lote grande de URLs de redirecionamento?

1

Eu tenho um arquivo .csv com milhares de links com alias / encurtados (como bit.ly etc.). Preciso descobrir para onde eles redirecionam. Existe um programa simples que pode completar essa tarefa?

    
por memery 19.10.2013 / 01:16

3 respostas

2

Você não especificou seu sistema operacional.

Mas no Linux (com o Curl e o awk instalados) você pode fazer algo assim:

#!/bin/bash
while read LINE ; do
  NEWURL=$(curl -sIL $LINE 2>&1 | awk '/^Location/ {print $2}' | tail -n1;)
  echo "$LINE ; $NEWURL"
done < urls.txt

Observe que os sites que não redirecionam não terão resultado após o antigo.

    
por 19.10.2013 / 02:33
2

Se você puder encontrar uma maneira de salvar o arquivo como texto simples com uma URL por linha, você pode usar o seguinte script em uma máquina Linux / MacOS / * nix ou Cygwin no Windows para cuspir um arquivo de texto com as urls.

#!/bin/bash
rm resolved_urls.txt
for url in $(cat url.txt); do
        wget -S "$url" 2>&1 | grep ^Location >> resolved_urls.txt
done

Copie o texto acima em um arquivo chamado resolve.sh usando nano , se necessário, torne-o executável com chmod +x resolve.sh , nomeie o arquivo com o URL bit.ly e etc para url.txt, garantindo que ele esteja em a mesma pasta que o arquivo resolve.sh e execute-o com ./resolve.sh . Ele criará um arquivo chamado "resolved_urls.txt" com o URL original e sua contraparte resolvida.

A saída com

http://bit.ly/1auRnQ9
http://bit.ly/19ZkTAI

em url.txt é

http://bit.ly/1auRnQ9 --> Location: http://www.google.com/ [following]
http://bit.ly/19ZkTAI --> Location: http://superuser.com/ [following]

Este script está longe de ser perfeito e pode invocar a ira de vários greybeards do Unix, mas pelo menos funciona para bit.ly. Deixe-me saber se você tem alguma dúvida relacionada a nix.

    
por 19.10.2013 / 02:21
1
O

link é exibido na tela, mas há uma API que você pode usar em link

    
por 19.10.2013 / 01:34