写爬虫程序的时候,会遇到目标网址太长,存入数据库存入不了的情况,这时,我们可以通过百度短网址服务将网址缩短之后再存入
百度短网址: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/