Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

评论api (https://api.bilibili.com/x/v2/reply/wbi/main) 如何获取所有评论? #1075

Open
1 task done
normalHeFei opened this issue Aug 5, 2024 · 5 comments
Open
1 task done

Comments

@normalHeFei
Copy link

提交前请确认

  • 我已检索仓库中文档,不包含所提及内容,或所提及内容在本仓库中存在错误,且 Issues、Pull Requests 中无相关提交

API 来源

Web 端(含 h5)

API 类型

REST

API 地址

https://api.bilibili.com/x/v2/reply/wbi/main

详情描述

如标题所示,获取评论请求是个分页请求
目前只能获取第一页的数据,如何获取当前视频的所有评论?
尝试使用返回的 pagination_str 作为请求参数, 可依然只是获取第一页的结果

@antecanis8
Copy link

参数pn为页数

@SessionHu
Copy link
Contributor

Did you mean #701 ?

@antecanis8
Copy link

Did you mean #701 ?

抱歉 我可能说错了
pn在https://api.bilibili.com/x/v2/reply/reply是页码

@SessionHu
Copy link
Contributor

SessionHu commented Aug 27, 2024

Please close. See 获取评论区明细_懒加载 & #701.

`data`中的`cursor`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ----- | -------------- | ----------------------- |
| all_count | num | 全部评论条数 | |
| is_begin | bool | 是否为第一页 | false:否<br />true:是 |
| prev | num | 上页页码 | |
| next | num | 下页页码 | |
| is_end | bool | 是否为最后页 | false:否<br />true:是 |
| mode | num | 排序方式 | |
| support_mode | array | 支持的排序方式 | |
| name | str | 评论区类型名 | |
| pagination_reply | str | 用于下一次请求的偏移信息 | |
| session_id | str || |
`cursor`中的`pagination_reply`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---- | ---- | -- | - |
| next_offset | str | 用于下一次请求的偏移信息 | |
| prev_offset | str | 用于本次请求的偏移信息 | |

@HankTheSniper
Copy link

你的问题解决了吗?我按照你对自己代码编写的描述(尝试使用返回的pagination_str作为请求参数)做了复现,的确会出现只获取第一页评论内容的现象,然而你的代码编写是错误的。因为上次请求响应的data.cursor.pagination_reply.next_offset不能直接作为pagination_str的请求参数,而应该是pagination_str.offset的参数。简单来说,你得到的data.cursor.pagination_reply.next_offset要经历以下操作(以python代码为例):

next_offset = cursor["pagination_reply"]["next_offset"]
pagination_str = '{"offset":"' + next_offset.replace('"', '\\"') + '"}'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants