示例:动态转发抽奖
"""请注意,获取转发数量有限制,上限大概在 540 个左右若转发人数超过这个数字,将产生不公平,请勿使用该脚本"""from bilibili_api import dynamic, syncimport random# 动态 IDDYNAMIC_ID = 0# 抽取人数COUNT = 3async def main(): # 初始化 dy = dynamic.Dynamic(DYNAMIC_ID) # 存储所有转发信息 reposters = [] # 存储下一页起始位置 offset = "0" while True: # 循环拉取动态 r = await dy.get_reposts(offset) # 存入 reposters.extend(r['items']) print(f'拉取转发信息中 {len(reposters)} / {r["total"]}') if r['has_more'] != 1: # 无更多,退出循环 break # 设置下一页起始位置 offset = r['offset'] # 中奖名单 lucky_dogs = [] for i in range(COUNT): # 随机取 index = random.randint(0, len(reposters) - 1) lucky_dogs.append(reposters[index]) # 取完后删除,以免重复 reposters.remove(reposters[index]) # 打印中奖名单 print('中奖名单:') for p in lucky_dogs: print(f'{p["desc"]["user_profile"]["info"]["uname"]} https://space.bilibili.com/{p["desc"]["user_profile"]["info"]["uid"]}')sync(main())