背景
短链,顾名思义,就是将原始长链缩短,以此达到更易于传播的效果。短链本身的原理其实很简单,即生成一个全局唯一ID,保存这个短链和原始链接的映射关系,一般通过302重定向的方式从短链跳转到原始链接。说到唯一ID我们一般可能会想到通过雪花算法、哈希算法去生成,但这样做要么不够短,要么需要解决哈希碰撞的问题,因此,我们这里不妨使用自增ID,然后转成由26英文字母大小写和10个阿拉伯数字构成的62进制数字,粗略计算一下,仅仅6位长度即可表示近6百亿,7位长度可达数万亿,可以说是绰绰有余了。
例如:
- 原链接:
https://mp.weixin.qq.com/s?__biz=MzIxMjE1ODAzOA==&mid=2650631198&idx=1&sn=8fec9cd03e77f1e903e5366bcfe37d14&chksm=8f439f27b83416317e4e017cc7ea648cf84aec77b912d776fbb3a0f838ed4faaa98513b14efb&token=320270898&lang=zh_CN#rd
- 短链接:
https://clck.ru/WrxvL
26个大写字母 26小写字母,10个数字,随机生成6个然后插入数据库对应一个id,短连接跳转的时候,根据字符串查询到对应id,即可实现相应的跳转!不过2的62次方,不知道有没有重复的,小概率可以,但是对应不是很大的网站应该足够了
简介
今天,我们介绍一个python库【pyshorteners(短网址)】
「pyshorteners是一个简单的URL缩短Python库。」
提供了18种短链根域名供使用。
实战
pip install pyshorteners
- 代码
import pyshorteners as ps url = "https://mp.weixin.qq.com/s?__biz=MzIxMjE1ODAzOA==&mid=2650631198&idx=1&sn=8fec9cd03e77f1e903e5366bcfe37d14" \ "&chksm=8f439f27b83416317e4e017cc7ea648cf84aec77b912d776fbb3a0f838ed4faaa98513b14efb&token=320270898&lang=zh_CN" \ "#rd " u = ps.Shortener().clckru.short(url) print(u)
- 转换结果
https://clck.ru/WrxvL
总结
短链接的好处:
- 内容需要
- 用户友好
- 便于管理
下集预告
- googletrans(翻译)