xu0329 / bilibili_proxy

代理池刷bilibili播放量
37 stars 9 forks source link

在getdata时出现KeyError: 'data' #4

Closed LinusLieu closed 4 months ago

LinusLieu commented 4 months ago

Traceback (most recent call last): File "C:\Users\Leona\Downloads\bilibili_proxy-main\bilibili_proxypool.py", line 38, in getdata = resp.json()["data"]


KeyError: 'data'
LinusLieu commented 4 months ago

看返回值是{'code': -412, 'message': 'request was banned', 'ttl': 1},我自己先琢磨下

LinusLieu commented 4 months ago

这里将原本的

reqdata = []
for bv in bvid:
    stime = str(int(time.time()))

    resp = requests.get("https://api.bilibili.com/x/web-interface/view?bvid={}".format(bv))
    getdata = resp.json()["data"]
    data= {
        'aid':getdata["aid"],
        'cid':getdata["cid"],
        "bvid": bv,
        'part':'1',
        'mid':getdata["owner"]["mid"],
        'lv':'6',
        "stime" :stime,
        'jsonp':'jsonp',
        'type':'3',
        'sub_type':'0',
        'title': getdata["title"]
    }
    reqdata.append(data)

替换为bilibili_proxy文件中的即可解决

reqdata = []
for bv in bvid:
    stime = str(int(time.time()))
    print("正在获取data,请耐心等待。。。")
    while True:
        resp = requests.get("http://api.bilibili.com/x/web-interface/view?bvid={}".format(bv),headers=headers)
        resp_json = resp.json()
        if "data" in resp_json:
            getdata = resp_json["data"]
            break
    data= {
        'aid':getdata["aid"],
        'cid':getdata["cid"],
        "bvid": bv,
        'part':'1',
        'mid':getdata["owner"]["mid"],
        'lv':'6',
        "stime" :stime,
        'jsonp':'jsonp',
        'type':'3',
        'sub_type':'0',
        'title': getdata["title"]
    }
    reqdata.append(data)