目前,国内网又很多提供短地址服务的平台,例如:
第三个网址我没有找到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

把下面这行直接复制到浏览器:
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

http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=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)