«

»

jul
29

Extraindo links

por Laercio da Silva Motta – twitter: @laerciomasala

   Criei uma nova categoria chamada “Rapidinhas”, aqui vou postar alguns macetes(na maioria das vezes com ShellScript) que podem ajudar no dia-a-dia. Como primeiro post vou começar mostrando como extrair links de uma página, para isso tenho duas alternativas, vou mostrar agora como usar:

   Digamos que eu tenho um site qualquer, vou pegar esse: http://www.baixandoanimes.com/, esse site contém vários links para downloads, por exemplo o pica-pau: http://www.baixandoanimes.com/picapau.htm, cada um sendo um episódio. Normalmente um usuário que ainda não conhece os comandos iria clicar um por um para baixar, mais imagina que tivesse 300 links? Veja:

   Agora com o shell do Linux(ou até mesmo um Cygwin) você pode usar alguns comandos para extrair esses links da página:

1. Vamos baixar o arquivo e nomeá-lo como “lista”:

# wget -c http://www.baixandoanimes.com/picapau.htm -O lista

2. Depois de baixado vamos selecionar o que queremos, no caso eu já estou ciente que os links de download são do rapidshare, então:

# sed 's/\"/\n/g' lista | grep rapidshare

Calma, calma, eu explico:

Estou usando 2 comandos na linha, o sed e o grep

sed: Eu estou substituindo(s) tudo que é “(aspas) por \n(linha nova), colocando em outra linha o link do site – grep: Seleciono somente as linhas que contem rapidshare e nada mais.

   Sim, um pouco complicado, mas nem tanto, vamos para mais outra:

grep -Eo 'http://rapidshare.com[A-Za-z0-9/._]+' lista

   Agora eu uso somente o grep com as opções -E e -o, indica que eu vou usar Expressão Regular Estendida e apenas a parte da linha correspondente ao PADRÃO respectivamente. Como eu já sei(ou pelo menos espero que seja) o começo do link com http://rapidshare.com(+ algo), então eu adicionei o “mais algo” como sendo uma expressão regular, que vai “casar” com:

– A-Z -> letras de A a Z (maiúsculas)
– a-z -> letras de A a Z (minusculas)
– 0-9 -> números de 0 a 9(0,1,2,3,4,5,6,7,8,9)
– /._ -> Barra, ponto e underline

   Então, tudo que tiver entre colchetes [], ele vai me trazer, no caso isso vai me trazer o resto do link(resumindo a conversa) e somente os links. O resto é excluído, pois estou usando a opção -o com o grep.

   Agora é a coisa que professores adoram fazer, existe uma opção mais simples, com o lynx, basicamente eu usaria isso:

lynx --dump http://www.baixandoanimes.com/picapau.htm

  Ele já iria me trazer a lista de todos os links disponíveis na página. Sim, eu sei, você deve estar se perguntando, então para que as outras opções? E eu digo: apenas para conhecimento, é sempre bom saber. Mas voltando ao assunto, esse comando me mostra todos os links, como eu já havia dito, porém, ele vem com números no começo, e isso pode ser facilmente removido(com a força do Shell, claro), como eu quero somente os links do rapidshare então vou usar o awk para extrair somente os links, para isso adiciono um | (pipe) e o comando do awk, assim vou matar as duas em uma só: somente os links rapidshare e retirar os números:

lynx --dump http://www.baixandoanimes.com/picapau.htm | awk '/rapidshare/ {print $2}'

   Basicamente eu adicionei o que esta sublinhado, se eu quisesse pegar todos os links sem exceção é só tirar o /rapidshare/ e deixar o print:

lynx --dump http://www.baixandoanimes.com/picapau.htm | awk '{print $2}'

   Bem, é isso. Sugestões? Críticas? Comentem ae.. Até a próxima!

Link permanente para este artigo: http://laerciomotta.com/2011/07/extraindo-links/

6 comentários

2 menções

  1. Rafael Castro (@RafaelC457ro) disse:

    Isso teria sido muito util um tempo atras pra mim..tive aprender tudo isso na marra mesmo…mas ate que foi bom pra meu aprendizado…lembrando que se o link aponta para servidor rapidshare ou megaupload pode usar o plowshare um gerencioador de download via linha de comando que reconhece captcha e espera os seguandos necessarios…

    1. laercio disse:

      Ou ainda o JDownloader.. não conhecia esse Plowshare, mais vou dar uma olhada.. Valeuuu =)

  2. Francklin disse:

    Me salvou mais uma vez!

  3. asghan disse:

    Boa a dica e gostei tbm do site usado para teste !

  4. henrique disse:

    nossa gostei muito, depois vou testar aqui no meu ubuntu, sou iniciante ainda não conheço nada ainda do terminal quase.. mas espero aprender bastante aqui!

  5. Rodger Doung disse:

    Thanks for the post 🙂

  1. Extraindo links de um site – Ubuntu Dicas disse:

    […] não conhece os comandos, iria clicar um por um para baixar, mais imagina que tivesse 300 links? Veja como extrair os links, via terminal! Compartilhe pelas redes sociais:PrintDiggdel.icio.usFacebookTwitterGoogle […]

  2. Ano Novo e Novidades » Blog do Laercio Motta disse:

    […] Extraindo links […]

Deixe uma resposta

Seu e-mail não será publicado.

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>