Python爬虫:利用百度短网址缩短url

本文介绍了一种解决爬虫程序中长网址存储问题的方法,通过使用百度短网址服务将长网址转换为短网址进行存储。文章提供了Python代码示例,演示了如何调用百度短网址API实现网址的缩短和还原。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

百度短网址: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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值