Python 将内容中的 Url 地址转换成 Tinyurl 地址

你用过 饭否Twitter 吗?当发布信息的时候,如果内容中带有过长的 url 地址,程序就会自动将这些地址转换成为更短的 url,使用的是 Tinyurl 的地址转向服务。

如:http://huacn.blogbus.com/logs/25832349.html 转换后就成了  http://tinyurl.com/6ameh5

这样的就跟迷你博客的初衷更加贴切了,也可以在短小的消息中带上连接地址。

因为我在做我的 Python 的第一个项目 Tmitter 因为此项目是模仿 饭否Twitter 自然 shorturl 的功能是必不可少的,刚学 Python 的我很多都不熟悉,慢慢的查 Tinyurl 的 API,再不停的调试与修改,这个功能终于实现了。

下面是代码,分享一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*-
import re,urllib

def tiny_url(url):
    """将 url 转换成 tinyurl"""
    apiurl = "http://tinyurl.com/api-create.php?url="
    tinyurl = urllib.urlopen(apiurl + url).read()
    return tinyurl

def content_tiny_url(content):
    """让消息里面的连接转换成更短的 Tinyurl"""

    regex_url = r'http:\/\/([\w.]+\/?)\S*'
    for match in re.finditer(regex_url, content):
        url = match.group(0)
        content = content.replace(url,tiny_url(url))

    return content


嘿嘿,享受效果吧,可以下载我的 Tmitter 试一下效果。

附注:本文中的代码着色来自于 http://pastie.org/