如无特殊说明,所有文档均基于最新版本的API编写,不保证向前兼容。既往版本文档不保留,请更新至最新API。
几乎所有方法都有简短注释,使用help(function)
可以获得注释。
- 如无特殊说明,所有方法均能传入Verify类。
- 无特殊说明,get开头的方法(获取信息)可不用传入Verify类。
- set/send/add/share/del等开头的方法(用户操作)需要传入Verify类,并且Verify类必须提供SESSDATA和CSRF值,否则会报错。
- 完美的解决办法:只要能传入Verify类的,直接给予完全权限
循环获取评论。
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
order | str | False | time | 评论排序方式,time(时间),like(热度) |
发送评论
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
text | str | True | - | 评论内容 |
root | int | False | - | 在哪个评论下回复的rpid |
parent | int | False | - | 回复谁的评论的rpid |
root 和 parent这两个参数可能有点绕(我也晕了),这里我说明一下。
共有四种情况:
无root 无parent
直接在媒体(指视频,专栏等能接受评论的地方)下面回复。
有root 无parent
在评论下面评论。
root=评论rpid
无root 有parent
在评论下面评论,实际上parent必须设置,这里进行了智能判断。
parent=评论rpid
有root 有parent
在评论下面,回复楼中楼。显示上和上一种情况一样,但是这个会给对方发送通知信息。你可以在评论前面使用这个格式:“回复 %用户名%:”,这个也是b站官方的格式。
root=评论rpid,parent=楼中楼rpid
我估计也不太看的懂,上图吧。
相关代码:
# 等号左边是实际发送的请求数据,右边是用户传入的参数
if parent is not None and root is None:
# 直接回复媒体
data["root"] = oid
data["parent"] = parent
elif parent is None and root is not None:
# 回复动态下面的评论
data["root"] = root
data["parent"] = root
elif parent is not None and root is not None:
# 根据用户设置
data["root"] = root
data["parent"] = parent
设置评论点赞状态。
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
rpid | int | True | - | 评论id |
status | bool | False | True | 状态 |
设置评论点踩状态。
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
rpid | int | True | - | 评论id |
status | bool | False | True | 状态 |
设置评论置顶状态。
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
rpid | int | True | - | 评论id |
status | bool | False | True | 状态 |
删除评论。
参数名 | 类型 | 必须提供 | 默认 | 释义 |
---|---|---|---|---|
rpid | int | True | - | 评论id |
涉及到循环获取数据的方法(以_g
结尾)都使用了生成器语法,使用方法如下。
from bilibili_api.video import get_comments_g
# 此处会立即返回一个生成器
comments_generator = get_comments_g("BV1Bf4y1Q7QP")
comments = []
for comment in comments_generator:
# 将评论项目加入列表,也就是普通的所有评论爬虫
comments.append(comment)
# 更多关于生成器的特性请自行搜索
这样比之前版本的更合理,可以根据自己的需要来决定是否终止请求。
所有方法调用请接收返回值,返回的是b站该API调用的返回值,不管是GET还是POST方法都有返回值(None也是)