参考链接: URL 短地址Shorteners及其Python中的API 2
写爬虫程序的时候,会遇到目标网址太长,存入数据库存入不了的情况,这时,我们可以通过百度短网址服务将网址缩短之后再存入
百度短网址:http://dwz.cn/ 百度短网址接口文档:http://dwz.cn/#/apidoc
以下是python代码
# -*- coding: utf-8 -*-
# @File : baidu_short_url.py
# @Date : 2018-08-24
# @Author : Peng Shiyu
import requests
def get_short_url(url):
"""
获取百度短网址
@param url: {str} 需要转换的网址
@return: {str} 成功:转换之后的短网址,失败:原网址
"""
api = "http://dwz.cn/admin/create"
data = {
"url": url
}
response = requests.post(api, json=data)
if response.status_code != 200:
return url
result = response.json()
code = result.get("Code")
if code == 0:
return result.get("ShortUrl")
else:
return url
def get_long_url(dwz_url):
"""
通过百度短网址获取原网址
@param dwz_url: {str} 需要查询的网址
@return: {str} 成功:查询到的原网址网址,失败:短网址
"""
api = "http://dwz.cn/admin/query"
data = {
"shortUrl": dwz_url
}
response = requests.post(api, json=data)
if response.status_code != 200:
return dwz_url
result = response.json()
code = result.get("Code")
if code == 0:
return result.get("LongUrl")
else:
return dwz_url
if __name__ == '__main__':
base_url = "https://www.baidu.com/"
short_url = get_short_url(base_url)
print(short_url)
# http://dwz.cn/oHvt1KD7
long_url = get_long_url(short_url)
print(long_url)
# https://www.baidu.com/