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!
6 comentários
2 menções
Pular para o formulário de comentário
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…
Autor
Ou ainda o JDownloader.. não conhecia esse Plowshare, mais vou dar uma olhada.. Valeuuu =)
Me salvou mais uma vez!
Boa a dica e gostei tbm do site usado para teste !
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!
Thanks for the post 🙂
[…] 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 […]
[…] Extraindo links […]