扫描二维码 上传二维码
选择防红平台类型,避免链接被拦截
选择允许访问的平台类型

B站短链接怎么还原成长链接?3种转换方法详解

B站短链接还原长链接的技术实现

短链接服务在内容传播中极为常见,B站采用的 b23.tv 域名便是典型代表。这类链接在点击后会经历服务端重定向,最终跳转到真实的视频或页面地址。若需在程序层面获取原始长链接,Python 提供了简洁高效的解决方案。

核心原理在于利用 HTTP 协议的重定向机制。当向短链接发送请求时,服务器会返回 3xx 状态码并在响应头中标注 Location 字段,指示跳转目标。通过追踪这一链条,即可还原完整路径。



采用 requests 库处理最为直接:

import requests

<img src="/uploads/20251015/30.png?t=1915391912" alt="" class="img-fluid" />

def resolve_short_url(url):
# HEAD 请求仅获取响应头,不下载正文,效率更高
resp = requests.head(url, allow_redirects=True, timeout=10)
# 跟随全部重定向后,url 属性即为最终地址
return resp.url


实际调用时需注意,B站短链可能存在多级跳转。allow_redirects=True 已自动处理中间环节,无需递归实现。若需兼容极端情况或旧版库,可手动检查 resp.is_redirectresp.headers.get('Location') 实现逐层解析。



获取的长链接往往携带追踪参数,形如 ?from=search?seid=xxx。若需提取干净地址,正则处理即可:

import re

def strip_query_params(url):
# 匹配协议、域名及路径,遇 ? 或 # 终止
clean = re.match(r'(https?://[^?#]+)', url)
return clean.group(1) if clean else url




实际部署中建议增加健壮性设计:设置合理的超时阈值防止挂起;捕获 requests.exceptions.RequestException 处理网络异常;对非 2xx/3xx 状态码进行校验。此外,B站的反爬策略可能限制高频请求,添加请求头模拟浏览器行为或控制调用频率均属必要措施。

该技术方案同样适用于其他平台的短链解析,仅需调整目标域名即可迁移复用。