2022-04-25 10:32:38
阅读 2079
在编辑微信文章时,发现微信页面插入一个网址会变的非常丑陋,稍微长一些的显示效果就更差!对于读者来说,由于微信里不能插入外链,读者要想访问一个网址,不能点击,只能手输。于是我想到了短网址。
短网址服务是随着 Twitter 和微博这样短小的互联网内容的兴起而出现的,因为这些社交网站的 140 字字数限制,如果网址不用什么办法来缩短的话,会很容易占据一条消息的绝大部分篇幅,甚至使得消息无法发出。
常见的就是微博的短网址,比如:http://t.cn/EZXC3rf 。短网址在微博这些限制字数的应用里,好处不言而喻。短、字符少、美观、便于发布、传播。三维推、缩我短链接、百度等等,很多都有提供短网址转换服务。
短网址的原理
当我们在浏览器里输入 http://t.cn/EZXC3rf 时
1、DNS 首先解析获得 http://t.cn 的 IP 地址;
2、当 DNS 获得 IP 地址以后(比如:116.211.169.137),会向这个地址发送 HTTP GET 请求,查询短码 EZXC3rf;
3、http://t.cn 服务器会通过短码 EZXC3rf 获取对应的长 URL;
4、请求通过 HTTP 301 转到对应的长 URL。
实现
短网址服务是需要短网址服务器的,这里我们不再重复造轮子。
百度、缩我短链接等短网址服务都有相应的 API 接口可以直接调用(现在需要付费了呢~)。
短网址接口
三维推短网址接口的稳定性和跳转速度还是很给力的,但是接口使用时需要进行鉴权先,这里我们就不再演示。百度的呢,百度的倒是不用鉴权,但是在转换我的博客地址时,居然报异常!
以下为你找一个付费或者免费的接口,我暂且以:http://suo.im/为例。
使用也很简单:
TXT格式短网址 API 接口接口:http://suo.im/api.php?url=urlencode('要缩短的网址')例如:http://suo.im/api.php?url=http%3a%2f%2fwww.baidu.com返回:http://suo.im/baiduJSON格式短网址API接口说明:format为json例如:http://suo.im/api.php?format=json&url=http%3a%2f%2fwww.baidu.com返回:{"url":"http://suo.im/baidu","err":""}
代码实现
有接口,代码实现就很简单了:
import requests
long_url = "https://hoxis.github.io/learn-microservice-from-0.html"
querystring = {"url":long_url}
url = "http://suo.im/api.php"
response = requests.request("GET", url, params=querystring)
print(response.text)
运行完,就能生成自定义网址的短网址啦!
$ python suo.py
http://suo.im/51ckP5
再也不用担心公众号里插入链接了!