You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py调用furry.booru API时存在标签却返回无结果问题

问题排查解决方案

1. URL参数编码错误

直接将用户输入的标签拼接至URL未做URL编码时,标签中的空格、特殊字符会导致请求参数被错误解析,furry.booru API无法识别传入的标签内容。
修复方法:

# 引入urllib的编码工具
from urllib.parse import quote

# 修改请求链接格式化逻辑
data = requests.get(
    "https://furry.booru.org/index.php?page=dapi&s=post&q=index&json=1&limit={}&tags={}"
    .format(limit, quote(tags)),
    headers=header
).json()

2. 随机数取值越界

random.randint(0, count)属于左右闭区间取值,而列表索引范围是0到count-1,当随机数取到等于count的数值时会抛出索引越界异常,被上层捕获后会触发JSON解码错误提示,返回找不到内容。
修复方法:

# 修改随机数取值范围
image = data[random.randint(0, count - 1)]

3. 请求头缺失必要字段

furry.booru配置了基础反爬机制,未设置User-Agent请求头时服务器会拒绝返回正常数据,返回内容不符合JSON格式触发解码报错。
修复方法:

# 确保header变量包含合法的User-Agent
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

4. 未定义变量异常

检查代码中limit变量是否已经提前赋值,未预先定义limit取值时会抛出NameError异常,被上层捕获后触发错误提示。
修复方法:

# 请求前先定义limit取值,furry.booru API单次请求最多返回100条结果
limit = 100

5. 频道权限校验

确认调用指令的Discord频道已经开启NSFW权限,furry.booru大部分内容属于NSFW分类,非NSFW频道即使获取到内容也可能被Discord拦截发送。

内容的提问来源于stack exchange,提问作者KB256666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:27:02