太实用了!Python竟然能把“长的”变成“短的”!
共 2849字,需浏览 6分钟
·
2022-07-10 14:11
人生苦短,菜鸟学Python!
最近我遇到了一些问题:需要将几百条长链接转成短链接。经过一番学习,发现Python可以轻松解决这个问题,不仅可以实现缩短【长链接→短链接】,也可以实现还原【短链接→长链接】。
缩短链接
【长链接→短链接】缩短链接,就是把长的要死的链接,缩短到只有几个字符那么长。
这么做是为了什么呢?打个比方,如果你们公司搞了一个活动,需要群发营销短信,结果单单活动链接就占据了一页,那就会非常影响活动效果了。
所以公司机构往往会使用短链接,将其应用于活动推广、短信推广、邮件推广、社交推广、APP推广等。
如果使用Python去实现批量缩短长链接,可以怎么做呢?
第一时间想起来的就是百度短网址,两年前练习还调用过他们的api,结果发现今年4月1日就无法个人使用了,gg
如果你有服务器,可以自己搭建一个短链接工具。要么就是使用免费/付费的
免费
免费的网站有很多,但并不稳定,有跑路风险。干脆只推荐一个工具箱聚合网站:一个木函(https://ol.woobx.cn/tool/url-shortener)
如果想使用Python调用,可以抓包该网站转换时的请求,并将curl请求命令转Python请求代码。
付费
免费爽一时,付费一直爽。如果想要保证生成短链接的稳定,可以试试付费方式,这种网站就不进行推荐了。
付费自然不需要去抓包接口了,直接调用即可。
在交互式环境中输入如下命令:
from urllib.parse import quote
import requests
import json
# 先对要缩短的网址进行urlencode编码
url = "https://mp.weixin.qq.com/s?__biz=MzU5Nzg5ODQ3NQ==&mid=2247521340&idx=1&sn=90bdde598d4a8f14f582387e702c2c2f&chksm=fe4eb1b8c93938ae18f605a5e42d08c4ab7a83ee2d5a03b27763126e64d77cd1600cf256eb01#rd"
url = quote(url)
key = "***********************"
# 请求api接口对url进行缩短
html = requests.get(f"http://api.3w.cn/api.htm?format=json&url={url}&key={key}&expireDate=2050-01-01&domain=21").content
data = json.loads(html.decode('utf-8'))
print(data["url"])
输出:
http://suo.nz/1FyT2P
在上述代码中,我们首先对要缩短的网址进行urlencode编码,接着请求api接口对url进行缩短。
为什么需要urlencode编码?
URL参数字符串中使用key=value键值对这样的形式来传参,如果value字符串中包含了=或者&,那么会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码[1]。
还原链接
在前文中,我们实现了Python调用接口自动缩短链接。那么反之,如何还原链接呢?
【短链接→长链接】比起前面的操作,这就简单多了,只需要4行代码[2]。
在交互式环境中输入如下命令:
import requests
url = "https://sourl.cn/AWeBWs"
res = requests.head(url)
print(res.headers.get('location'))
输出:
链接的缩短与还原,可能有些冷门,但是对于需要的人来说还是挺实用的,希望对大家有帮助!
参考资料
Python+requests 之urlencode编码与解码: https://blog.csdn.net/weixin_43507959/article/details/106578516
[2]黄伟呢: 数据分析与统计学之美
推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
年度爆款文案
点阅读原文,看B站我的视频!