Ir para o conteúdo
ou

Software livre Brasil

 Voltar a
Tela cheia

Encurtando URLs com Python+urllib

6 de Novembro de 2009, 0:00 , por Software Livre Brasil - 33 comentários | Ninguém está seguindo este artigo ainda.
Visualizado 2699 vezes

Com a ascensão do Twitter e de outros serviços de microblogging como o Identi.ca, Jaiku e etc.., vieram os encurtadores de URL com a promessa de aproveitar o máximo possível dos 140 caracteres disponíveis. E assim como os serviços de microblogging, os encurtadores de URL também possuem ótimas APIs para que desenvolvedores integrem seus aplicativos a estes serviços.

Neste artigo irei demonstrar uma das mais variadas formas de interagir com a API dos mais importantes encurtadores de URL, a linguagem escolhida foi o Python e o módulo que iremos trabalhar é o urllib. O módulo urllib lhe fornece meios de acessar servidores HTTP por meios de requests GET e POST de maneira simples e direta.

Os encurtadores que iremos trabalhar são: migre.me, is.gd, tinyurl.com e cli.gs.

Estas APIs utilizam o mesmo principio, a URL a ser encurtada é passada em uma variável pela URL do serviço. Então podemos concluir que os passos são “identicos” para estes encurtadores. Vamos à programação!

Primeiramente pedimos ao usuário que informe a URL, essa por sua vez é passada como parâmetro para a função quote do módulo urllib e enfim é printada na tela.

# -*- coding: utf-8 -*-
import urllib
 
url = raw_input("Informe a URL: ")
short = urllib.urlopen("http://migre.me/api.txt?url=%s" % urllib.quote(url)).read()
print ("\nURL Encurtada: %s" % short)

Simples, não acha? No caso acima o script retorna a URL encurtada do migre.me, vale lembrar que nenhum tratamento de erros está sendo aplicado, portanto qualquer valor digitado é enviado para o encurtador, que por sua vez só retorna um link válido se a URL for completa, isto é, com http://. Exemplo:

felipe@felipe-desktop:~/migre.me$ python migreme.py
Informe a URL: http://www.felipeborges.net

URL Encurtada: http://migre.me/aU3l
felipe@felipe-desktop:~/migre.me$

Talvez você queira que a URL seja passada como parâmetro ao seu script ao invés de ser “perguntada” durante a execução, como no script anterior. Para isso, um exemplo simples:

# -*- coding: utf-8 -*-
import sys
import urllib
 
url = sys.argv[1]
short = urllib.urlopen("http://is.gd/api.php?longurl=%s" % urllib.quote(url)).read()
print ("\nURL Encurtada: %s" % short)

Neste exemplo, encurtamos uma URL no is.gd, e esta é passada como parâmetro para o nosso script. Exemplo de execução:

felipe@felipe-desktop:~$ python teste.py http://www.felipeborges.net

URL Encurtada: http://is.gd/4P7Vj
felipe@felipe-desktop:~$

Vai da sua necessidade a forma que utilizará para encurtar a URL, o importante é que agora você tem um método simples que pode ser personalizado e otimizado para a sua aplicação.

Hey! Eu quero saber como encurtar URL nos demais serviços!

As ordens chefia! ;)

Basta substituir a URL do serviço pela fornecida na documentação da API em questão. Abaixo veja como ficaria a variável short para trabalhar com tinyurl.com e cli.gs.

Tinyurl.com: short = urllib.urlopen(”http://tinyurl.com/api-create.php?url=%s” % urllib.quote(url)).read()

cli.gs: short = urllib.urlopen(”http://cli.gs/api/v1/cligs/create?appid=&url=%s” % urllib.quote(url)).read()

E se você não conhece Python mas deseja saber mais sobre esta maravilhosa linguagem, não deixe de conhecer as seguintes fontes de estudo:


Fonte: http://www.felipeborges.net/?p=703

33 comentários

Enviar um comentário
Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.