Como extraio todos os links externos de uma página da web? [duplicado]

3

Como faço para extrair todos os links externos de uma página da web e salvá-los em um arquivo?

Se houver ferramentas de linha de comando que seriam ótimas.

Foi a mesma pergunta aqui , e a resposta funcionou normalmente para o google.com, mas por alguma razão não funciona com eg Youtube. Explicarei: tomemos por exemplo esta página . Se eu tentar correr

lynx -dump http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp | awk '/http/{print $2}' | grep watch > links.txt

então, ao contrário de usá-lo no google.com, primeiro executa o despejo do lynx, seguido por dar o controle ao awk (por algum motivo com entrada vazia) e, finalmente, não escreve nada no arquivo links.txt. Somente depois disso, ele exibe o despejo não-filtrado do lince, sem a possibilidade de transferi-lo para outro lugar.

Obrigado antecipadamente!

    
por whoever 07.04.2012 / 13:51

3 respostas

2
lynx -dump 'http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp' | awk '/http/{print $2}' | grep watch > links.txt

funciona. Você precisa escapar do & no link.

Na sua linha original, o & sem escape colocará o Lynx em segundo plano, deixando a entrada vazia para links.txt . O processo em segundo plano ainda vai escrever sua saída para o terminal em que você está, mas como você notou, ele não fará o > redirect (ambiguidade: qual processo deve gravar no arquivo?).

Adendo: Estou assumindo um erro de digitação no seu comando original: o início e o final ' não devem estar presentes. Caso contrário, você receberá outras mensagens de erro ao tentar executar um comando não existente. A remoção desses fornece o comportamento que você descreve.

    
por 07.04.2012 / 14:32
0

Use seu site favorito e pesquise por 'script scraper de website' ou 'script de scraping de website' e qualquer linguagem de programação que seja mais confortável para você. Você tem milhares e milhares de opções, então faça a pesquisa mais detalhada possível.

    
por 07.04.2012 / 15:31
0

Embora existam muitas opções para escolher, eu recomendaria usar python com BeautifilSoup - isso daria a você controle total do processo, incluindo os seguintes redirecionamentos, tratamento de certs SSL auto-assinados / expirados, trabalho em torno de HTML inválido, extração links apenas de blocos de páginas específicos, etc.

Por exemplo, confira este tópico: link

Instalar o BeautifilSoup é tão trivial quanto executar pip install BeautifilSoup ou easy_install BeautifilSoup se você estiver no linux. No win32 é provavelmente o mais fácil de usar instaladores binários .

    
por 07.04.2012 / 17:20