Skip to main content

import requestsimport reimport sysdef get_final_url(short_url): try: # 允许重定向 response = requests.head(short_url, allow_redirects=True) # 返回长链接 return response.url except requests.exceptions.RequestException as e: # 处理异常 print(f"请求异常: {e}") return Noneif __name__ == "__main__": if len(sys.argv) == 1: print("请输入参数") else: short_url=sys.argv[2] final_url = get_final_url(short_url) if final_url: mark_index = final_url.find("?") if mark_index != -1: cleaned_url = final_url[:mark_index] print(cleaned_url) else: cleaned_url = url print(cleaned_url) else: print("无法获取最终URL")

  1. LoopDNS资讯播报
    短链接跳转主要是http 301/302,将用户重定向至另一个网址。主流语言的httpclient允许跳转后即可获得最终的长链接。 频道编辑在此处提供一个31行的python小程序,可以直接复制b站app的短链接使用,作为命令行参数传入,不需要删除文本中的标题,可以同时去除长链接中的追踪参数。如有兴趣的可参考代码集成到自己的服务中。 代码将粘贴到评论区
    import requests
    import re
    import sys

    def get_final_url(short_url):
    try:
    # 允许重定向
    response = requests.head(short_url, allow_redirects=True)
    # 返回长链接
    return response.url
    except requests.exceptions.RequestException as e:
    # 处理异常
    print(f"请求异常: {e}")
    return None

    if __name__ == "__main__":
    if len(sys.argv) == 1:
    print("请输入参数")
    else:
    short_url=sys.argv[2]
    final_url = get_final_url(short_url)
    if final_url:
    mark_index = final_url.find("?")
    if mark_index != -1:
    cleaned_url = final_url[:mark_index]
    print(cleaned_url)
    else:
    cleaned_url = url
    print(cleaned_url)
    else:
    print("无法获取最终URL")