拉取题目
拉取基础题
https://api.bilibili.com/x/answer/v4/base
请求方式:GET
认证方式:Cookie或APP
json回复:
根对象:
| 字段 |
类型 |
内容 |
备注 |
| code |
num |
返回值 |
0:成功 -101:账号未登录 41014:答题过快或错误太多 41020:用户基础题已通过 41023:用户答题记录不存在 |
| message |
str |
错误信息 |
默认为0 |
| ttl |
num |
1 |
|
| data |
obj |
信息本体 |
|
data对象:
| 字段 |
类型 |
内容 |
备注 |
| question |
obj |
题目内容 |
|
data中的question对象:
| 字段 |
类型 |
内容 |
备注 |
| id |
num |
问题id |
问题id不代表题图,因为选项是打乱的 |
| number |
num |
当前题号 |
|
| q_height |
num |
问题部分总高度 |
|
| q_coord_y |
num |
问题部分Y裁剪起始 |
当然是0 |
| image |
str |
题图url |
题目文字+所有的选项文字排版成一张图,存储在bfs中 |
| from |
str |
问题来源页面url |
如:“xx弹幕是否违规”所在的视频页 |
| options |
array |
选项列表 |
|
| type_id |
num |
题目父类型id |
见查询自选题分类 注:36为基础题 |
| type_name |
str |
分院小电视提示文案 |
如:xx小电视 |
| type_image |
str |
分院小电视图标url |
|
question中的options数组:
| 项 |
类型 |
内容 |
备注 |
| 0 |
obj |
选项A |
|
| 1 |
obj |
选项B |
选项至少2个 |
| 2 |
obj |
选项C |
数组长度取决于选项个数 |
| 3 |
obj |
选项D |
|
question中的options数组中的对象:
| 字段 |
类型 |
内容 |
备注 |
| number |
num |
选项序号 |
如:1为A 2为B |
| high |
num |
选项部分总高度 |
|
| coord_y |
num |
选项部分Y裁剪起始 |
|
| hash |
str |
选项hash |
作为提交对应选项时应传参 |
示例:
curl -G 'https://api.bilibili.com/x/answer/v4/base' \
-b 'SESSDATA=xxx'
查看响应示例:
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"question": {
"id": 6511,
"number": 1,
"q_height": 38.4,
"q_coord_y": 0,
"image": "https://i0.hdslb.com/bfs/member/9d7f1f1f0b7478a621d1b998a5a98982.png",
"from": "",
"options": [
{
"number": 1,
"high": 42,
"coord_y": 38.4,
"hash": "f7619d6c2040d44f39dc87a7aa34fb9e"
},
{
"number": 2,
"high": 42,
"coord_y": 80.4,
"hash": "dce5140040f40ca4030783585684369d"
}
],
"type_id": 36,
"type_name": "小电视校长",
"type_image": "https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png"
}
}
}
```
拉取附加题
https://api.bilibili.com/x/answer/v4/extra
请求方式:GET
认证方式:Cookie或APP
json回复:
根对象:
| 字段 |
类型 |
内容 |
备注 |
| code |
num |
返回值 |
0:成功 -101:账号未登录 41014:答题过快或错误太多 41021:用户基础题未通过 41023:用户答题记录不存在 41054:用户附加题已通过 |
| message |
str |
错误信息 |
默认为0 |
| ttl |
num |
1 |
|
| data |
obj |
信息本体 |
|
data对象:
同拉取基础题的data对象
示例:
curl -G 'https://api.bilibili.com/x/answer/v4/extra' \
-b 'SESSDATA=xxx'
查看响应示例:
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"question": {
"id": 11492,
"number": 44,
"q_height": 76.8,
"q_coord_y": 0,
"image": "https://i0.hdslb.com/bfs/member/b6c846613bd0b44cd7c8af1d83e3f0c2.png",
"from": "https://www.bilibili.com/video/av14659093",
"options": [
{
"number": 1,
"high": 42,
"coord_y": 76.8,
"hash": "ca15e6009047cf82358c50ab90fd8d9e"
},
{
"number": 2,
"high": 42,
"coord_y": 118.8,
"hash": "60e86a1c736c68da3462f66377e4e8ca"
}
],
"type_id": 36,
"type_name": "小电视校长",
"type_image": "https://i0.hdslb.com/bfs/face/7b67c0c0da64a6ab059ff49bb0d4b92988b91806.png"
}
}
}
```
拉取自选题
https://api.bilibili.com/x/answer/v4/pro
请求方式:GET
认证方式:Cookie或APP
json回复:
根对象:
| 字段 |
类型 |
内容 |
备注 |
| code |
num |
返回值 |
0:成功 -101:账号未登录 41014:答题过快或错误太多 41021:用户基础题未通过 41023:用户答题记录不存在 41051:用户答题验证码未通过 41055:基础附加题未通过 |
| message |
str |
错误信息 |
默认为0 |
| ttl |
num |
1 |
|
| data |
obj |
信息本体 |
|
data对象:
同拉取基础题的data对象
示例:
curl -G 'https://api.bilibili.com/x/answer/v4/pro' \
-b 'SESSDATA=xxx'
查看响应示例:
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"question": {
"id": 824,
"number": 54,
"q_height": 38.4,
"q_coord_y": 0,
"image": "https://i0.hdslb.com/bfs/member/417e02be5652f79d0312fa2fcee28869.png",
"from": "",
"options": [
{
"number": 1,
"high": 42,
"coord_y": 38.4,
"hash": "c4574c23cf728c19abeab3e7525258d4"
},
{
"number": 2,
"high": 42,
"coord_y": 80.4,
"hash": "ffd48760758fbb8a2c183d1d04f692f8"
},
{
"number": 3,
"high": 42,
"coord_y": 122.4,
"hash": "898d414dff49fe20c4a1da1e148fadb2"
},
{
"number": 4,
"high": 42,
"coord_y": 164.4,
"hash": "09018443f09d8ef4f6fec5e96e082270"
}
],
"type_id": 1,
"type_name": "游戏小电视",
"type_image": "https://i0.hdslb.com/bfs/face/6590bee26086fed66ee7cc5bac26a32d2f733037.png"
}
}
}
```