示例:获取用户粉丝数

  1. from bilibili_api import user, sync
  2. u = user.User(660303135)
  3. print(sync(u.get_relation_info())["follower"])

示例:获取用户所有动态

  1. import json
  2. from bilibili_api import user, sync
  3. # 实例化
  4. u = user.User(660303135)
  5. async def main():
  6. # 用于记录下一次起点
  7. offset = 0
  8. # 用于存储所有动态
  9. dynamics = []
  10. # 无限循环,直到 has_more != 1
  11. while True:
  12. # 获取该页动态
  13. page = await u.get_dynamics(offset)
  14. if 'cards' in page:
  15. # 若存在 cards 字段(即动态数据),则将该字段列表扩展到 dynamics
  16. dynamics.extend(page['cards'])
  17. if page['has_more'] != 1:
  18. # 如果没有更多动态,跳出循环
  19. break
  20. # 设置 offset,用于下一轮循环
  21. offset = page['next_offset']
  22. # 打印动态数量
  23. print(f"共有 {len(dynamics)} 条动态")
  24. # 入口
  25. sync(main())

示例:移除所有粉丝

  1. from bilibili_api import Credential, user, sync
  2. from bilibili_api.user import RelationType
  3. credential = Credential(sessdata="", bili_jct="")
  4. my_user = user.User(uid=UID, credential=credential)
  5. async def main():
  6. follower_counts = 0
  7. page = 1
  8. total_followers = (await my_user.get_relation_info())["follower"]
  9. # 因为请求一次 get_followers 只能获取 20 个粉丝,所以要做一个检查
  10. while follower_counts < total_followers:
  11. # 获取当前页数的粉丝列表
  12. followers = await my_user.get_followers(pn=page)
  13. # 循环当前页数的粉丝列表
  14. for i in followers["list"]:
  15. follower_counts += 1
  16. uid = int(i["mid"])
  17. name = i["uname"]
  18. u = user.User(uid=uid, credential=credential)
  19. # 移除粉丝
  20. print(f"Removing {name}, uid:{uid}. Count: {follower_counts}")
  21. await u.modify_relation(relation=RelationType.REMOVE_FANS)
  22. # 防止触发 412 错误
  23. await asyncio.sleep(1)
  24. # 下一页
  25. page += 1
  26. sync(main())