生成短链接

扫描二维码 上传二维码
选择防红平台类型,避免链接被拦截
选择允许访问的平台类型

用Python快速生成短链接

以 Python 为笔,绘短链之韵
—— 快缩短网址「suo.run」优雅指南

一、缘起
长链如冗句,短链似诗眼。把「https://example.com/very/very/long/path?utm=xxx」折叠成「suo.run/A1b2C3d」,既省字符,又添神秘。快缩短网址(suo.run)愿做你的袖里乾坤,一键藏万里。

二、原理速写
1. 取长链指纹(MD5 / MurmurHash 等)。
2. 将指纹映射为 62 进制(0-9A-Za-z)。
3. 以 7 位字符串缀于域名之后,形如「suo.run/A1b2C3d」。
4. 写入 KV 存储;访问时再 301 至原址,并顺带统计点击、过滤内容。

三、Python 实战
方式一:自建哈希算法

import hashlib, string

ALPHABET = string.ascii_letters + string.digits # 62 字符
BASE = len(ALPHABET)

def shorten(url: str, length: int = 7) -> str:
digest = int(hashlib.md5(url.encode()).hexdigest(), 16)
code = []
for _ in range(length):
digest, rem = divmod(digest, BASE)
code.append(ALPHABET[rem])
return ''.join(code)

if __name__ == "__main__":
print("suo.run/" + shorten("https://www.pythontab.com"))

该算法在千万级链内冲突率 < 0.01%,若需更低,可增至 8 位或引入自增序列。

方式二:libsurl 借力
pip install libsurl

import libsurl

<img src="https://suo.run/uploads/20251015/27.png" alt="" class="img-fluid" />

srv = libsurl.Shortener(domain="suo.run")
short = srv.tiny("https://docs.python.org")
print(short) # 输出示例:suo.run/AbCdEf

libsurl 已封装 Base62、CRC、Redis 持久化,开箱即用。

四、自建 or 托管?
• 自建:需考虑高可用、防刷、统计、HTTPS 证书、CDN 回源,人力、时间、预算缺一不可。
• 托管:suo.run 已为你备好分布式存储、秒级生效、实时报表、开放 API。即刻接入,零运维。



五、一行代码接入 suo.run API
import requests

def fast_shorten(long_url, api_key=None):
url = "https://suo.run/api/shorten"
payload = {"url": long_url, "key": api_key}
return requests.post(url, json=payload, timeout=3).json()["short"]

print(fast_shorten("https://github.com/python/cpython"))

返回形如「suo.run/Xy9zA8B」,可直接投放微博、短信、二维码。

六、结语
让链接轻盈,让数据沉淀。快缩短网址「suo.run」—— 你的下一条短链,正在指尖等待诞生。