目前,国内网又很多提供短地址服务的平台,例如:
第三个网址我没有找到api接口,有人找到了可以告诉我一下哈,第四个需要微信登陆,由于不是特别了解这个网站的安全性,故没有登陆测试。
目前前俩个转换的短连接地址都是长期有效的,如果失效会网站通知的。
1、新浪:http://sina.lt/
2、百度:http://dwz.cn/
3、0x3:http://0x3.me/
4、MRW:http://mrw.so/
5、https://www.shorturl.at/
1、新浪api使用
如果单转一个,也可以使用网页版:
http://sina.lt/
下面是api使用,如果需要批量处理长地址转换可以代码使用。
http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=此处替换成你要缩短的网址
使用方法就是将上面中文换成你想转换的长地址,比如我想换:
https://blog.csdn.net/weixin_42081389/article/details/89381735
出现以下一个json格式的结果:”url_short”后面就是成功的短网址,复制到浏览器可以查看。结果是一样的。
[{“url_short”:”http://t.cn/EafsGzA","url_long":"https://blog.csdn.net/weixin_42081389/article/details/89381735","type":0}]
注意:如果你想转换的url地址如果含有?后面有数字,比如
https://blog.csdn.net/weixin_42081389/article/details/89381735?key=good&kw=hello
http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=https://blog.csdn.net/weixin_42081389/article/details/89381735?key=good&kw=hello
转换之后响应结果为:
[{“url_short”:”http://t.cn/EaI7l1d","url_long":"https://blog.csdn.net/weixin_42081389/article/details/89381735?key=good","type":0}]
观察发现你想转换的地址“&kw=hello”不见了,所以这时候需要先将地址进行url编码,再进行转换。
url在线编码
https://tool.chinaz.com/tools/urlencode.aspx
得到编码后的url:
https%3a%2f%2fblog.csdn.net%2fweixin_42081389%2farticle%2fdetails%2f89381735%3fkey%3dgood%26kw%3dhello
然后响应结果为:
[{“url_short”:”http://t.cn/EaIASvI","url_long":"https://blog.csdn.net/weixin_42081389/article/details/89381735?key=good&kw=hello","type":0}]
这时候就满足自己想要的结果了。
**2、百度和新浪的python 实现api接口代码:
注意: ‘Token’: ‘这个要自己登陆之后可以获取’**
https://dwz.cn/
进入网址之后登陆自己百度账号,点击token既可以获取token。
import json
import requests
import urllib
def baidu(url_long):
# 百度api接口
url = 'https://dwz.cn/admin/v2/create'
# TODO:设置待创建的长网址
bodys = {
'url': url_long
}
# 配置headers
headers = {
'Content-Type': 'application/json',
'Token': '自己登陆之后可以获取'
}
# 发起请求
# response = requests.post(url=url, data=json.dumps(bodys), headers=headers)
response = requests.post(url=url, json=bodys, headers=headers)
data=json.dumps(bodys)
# print(data,type(data))
# 读取响应
# print(response.text)
url_data = json.loads(response.text)
# print(url_data['ShortUrl'])
return url_data['ShortUrl']
def xinlang(url_long):
# 新浪需要转换一下,不至于get方式的参数传递会少
url1 = urllib.parse.quote(url_long)
print(url1)
url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=' + url1
resp = requests.get(url=url)
print(resp.text)
data_short = json.loads(resp.text)
return data_short[0]['url_short']
if __name__ == '__main__':
url_long = 'https://blog.csdn.net/weixin_42081389/article/details/89381735?key=good&kw=hello'
ShortUrl = baidu(url_long)
print('baidu',ShortUrl)
url_short = xinlang(url_long)
print('xinlang',url_short)