bilibili-api
bilibili-api copied to clipboard
【漏洞】弹幕解码错误
video.py 下弹幕解码出现错误,屏蔽424,425行可以临时解决,应该是b站此处数据接口形式变化了?
代码:
from bilibili_api import video, sync
v = video.Video(bvid='BV1AV411x7Gs')
dms = sync(v.get_danmakus(0))
for dm in dms: print(dm)
Traceback (most recent call last):
File "D:/PycharmProjects/bilibili_spider/【测试】弹幕测试.py", line 5, in <module>
dms = sync(v.get_danmakus(0))
File "D:\PycharmProjects\bilibili_spider\venv\lib\site-packages\bilibili_api\utils\sync.py", line 24, in sync
return loop.run_until_complete(coroutine)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
return future.result()
File "D:\PycharmProjects\bilibili_spider\venv\lib\site-packages\bilibili_api\video.py", line 553, in get_danmakus
view = await self.get_danmaku_view(cid=cid)
File "D:\PycharmProjects\bilibili_spider\venv\lib\site-packages\bilibili_api\video.py", line 507, in get_danmaku_view
read_command_danmakus(reader.bytes_string()))
File "D:\PycharmProjects\bilibili_spider\venv\lib\site-packages\bilibili_api\video.py", line 425, in read_command_danmakus
data['extra'] = json.loads(reader_.string())
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Process finished with exit code 1
---
是的 b站昨天更新了弹幕相关接口编码 我也是通过注释源码才得以勉强运行 期待作者更新吧
大佬!你是怎么注释的!求解!
把报错那行data['extra'] = json.loads(reader_.string())注释掉就行