bilibili-api icon indicating copy to clipboard operation
bilibili-api copied to clipboard

【漏洞】获取弹幕时使用的一个API接口解析出错

Open hyhAsma opened this issue 3 years ago • 1 comments

Python 版本: 3.8

模块版本: bilibili-api 9.1.0

运行环境: Windows 10

模块路径: bilibili_api.video

**报错信息: File "C:\Users\ASUS\anaconda3\lib\site-packages\bilibili_api\video.py", line 218, in __get_page_id_by_index pages = info["pages"]

报错代码:        
        if page_index < 0:
            raise ArgsException("分 p 号必须大于或等于 0。")

        info = await self.__get_info_cached()
        pages = info["pages"]

本人python新手,在下载B站柯南全季弹幕时,代码跑到了889集之后,在890集以及之后进行了报错 经查找问题,发现是请求接口:https://api.bilibili.com/x/web-interface/view时返回json格式中没有pages所致 使用在线postman请求 https://api.bilibili.com/x/web-interface/view?bvid=BV1NS4y1R7bn&aid=721822739(柯南889集)与 https://api.bilibili.com/x/web-interface/view?bvid=BV1UM4y1A762&aid=934338604(柯南890集)能够看到,890集(及之后)返回的json数据中没有pages

hyhAsma avatar Dec 01 '21 07:12 hyhAsma

if "pages" in keys(info):
      pages =info["pages"]

jingyuexing avatar Dec 05 '21 00:12 jingyuexing