16 outubro, 2009 | 4 comentários
Python: encurte URL com o migre.me
Fiz esse código em Python para encurtar uma URL através da API do migre.me. Como não sou um expert (como o Walter Cruz, o Rafael Martins e Osvaldo Santana), o programa ficou simples e, claro, pode precisa ser melhorado.
O Rafael Martins fez um script melhor que o meu. Download: migreme.py
Vamos lá
Faça o download do script e dê a ele a permissão para ser executado:
$ wget http://labs.luishenrique.org/python/migreme.py $ chmod +x migreme.py
Para executá-lo:
$ ./migreme.pyExemplo de uso:
lh@debian:~$ ./migreme.py http://luishenrique.org/blog/posts/python-api-migre-me > Shortened URL: http://migre.me/9clv
Para rodar como um programa nativo, faça um link simbólico com o superusuário (ou copie o arquivo) em alguma pasta contida na variável $PATH.
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $ cd /usr/local/bin/ # ln -s /home/pasta/do/script/migreme.py migreme
E execute agora somente com:
$ migreme
Código-fonte (Python 2) do migreme.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #! /usr/bin/env python #! /usr/bin/env python # # Simple script using the migre.me API # Author: Luis Henrique B. Sousa <contato@luishenrique.org> # Date: 2009-10-16 # # Usage: python migreme.py <url> # Example: ./migreme.py http://twitter.com/luish_ # from sys import argv import urllib import xml.dom.minidom api = 'http://migre.me/api.xml?url=%s' def migreme(url): mm_url = api % url dom = xml.dom.minidom.parse(urllib.urlopen(mm_url)) return str(dom.getElementsByTagName('migre')[0].childNodes[0].data) def main(*args): list = args[0] if len(list) == 1: print '\n-> Shortened URL:', migreme(str(list[0])) else: print """ - It works only with a URL. - Usage: ./%s <url> """ % argv[0] if __name__ == "__main__": main(argv[1:]) |
E para Python 3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #! /usr/bin/env python import urllib.request, urllib.parse, urllib.error import xml.dom.minidom import sys api = 'http://migre.me/api.xml?url=%s' def migreme(url): mm_url = api % url dom = xml.dom.minidom.parse(urllib.request.urlopen(mm_url)) return str(dom.getElementsByTagName('migre')[0].childNodes[0].data) def main(*args): list = args[0] if len(list) == 1: print('Shortened url:', migreme(str(list[0]))) else: print(""" - It works only with a URL. - Usage: ./migreme.py -- Example: ./migreme.py http://yoursite.com/articles/search/?query=linux&page=5&language=en """) if __name__ == "__main__": main(sys.argv[1:]) |
UPDATE 26/01/2009: Atualizei o script com a dica do Rafael Martins. :-)
Se houver dúvida e/ou sugestão, por favor, escreva um comentário ou use o formulário de contato.
Descer

Ir para o topo
[...] This post was mentioned on Twitter by Luís Henrique and Luís Henrique, Luís Henrique. Luís Henrique said: Encurte URL com a api do @migreme usando #python http://bit.ly/10KYt6 [...]
Eu fiz algo aqui… aparentemente não precisa desse ‘for’
http://hg.rafaelmartins.eng.br/scripts/file/0506383cceff/python/migreme.py
só roda em python2 ;-)
Rafael Martins, show de bola o seu script, principalmente o tratamento de erros. Ficam claros sua experiência e minha ignorância. hehe Mas, é claro, o aprendizado vem com o tempo, prática e erros. No mais, acho que pode ser integrado em ambos os scripts um tratamento a URL (do argumento) usando o unicode utf-8. Ah, vou tirar o for medíocre dali. :P
Valeu pela contribuição. Abraço!
Gostei do exemplo do Rafael. Dá uma olhada no meu feed2mb!