【Python】B站 av 号和 BV 号的转换

现在哔哩哔哩新推出了 BV 号用来取代以前的 av 号,所有视频都替换为 BV 号了,不过以前的 av 号还能使用。对于老视频还是用 av 号比较方便,所以写点代码实现这两个的转换。

效果如图:
【Python】B站 av 号和 BV 号的转换_第1张图片

使用方法:

  1. 初始输入 1 或 2 选择转换模式
  2. 输入 av 或 BV 号

很简单,直接上代码,需要使用 requests

import requests
import codecs


def av2bv(avid):
    site = "https://api.bilibili.com/x/web-interface/view?aid=" + str(avid)
    lst = codecs.decode(requests.get(site).content, "utf-8").split("\"")
    if int(lst[2][1:-1]) != 0: return "视频不存在!"
    return lst[13]


def bv2av(bvid):
    site = "https://api.bilibili.com/x/web-interface/view?bvid=" + bvid
    lst = codecs.decode(requests.get(site).content, "utf-8").split("\"")
    if int(lst[2][1:-1]) != 0: return "视频不存在!"
    return int(lst[16][1:-1])


print("author:Mengo \n请选择模式(输入1或2):\n(1:AV号转换为BV号,2:BV号转换为AV号)")
a = int(input())
while a not in [1, 2]:
    print("输入错误!请重新输入!")
    a = int(input())
if a == 1:
    print("\n请输入AV号:")
    av = input()
    av = av.replace("av", "")
    print("\nBV号为:\n" + str(av2bv(int(av))))
elif a == 2:
    print("\n请输入BV号:")
    print("\nAV号为:\nav" + str(bv2av(str(input()))))
print("\n按任意键退出。")
input()

你可能感兴趣的:(Python与AI,python,算法,json,http)