如何通过问题ID获取Stack Exchange最高评分答案?
正确获取指定问题最高评分答案的Stack Exchange API用法
嘿,我来帮你捋清楚问题出在哪,以及怎么正确操作:
首先,你犯了几个容易踩的小错误:
- 端点用错了:你调用的
/questions是用来获取问题本身信息的接口,不是问题下的答案接口。要通过问题ID抓取对应的答案,得用/questions/{问题ID}/answers这个专门的端点。 - ID打错了:你写的ID是
32290879,但你说要找的目标问题ID是32209879,数字差了一位,这肯定搜不到对应内容。 - site参数格式错了:Stack Exchange API的
site参数不需要加.com后缀,直接写stackoverflow就可以了。
正确操作步骤
- 确认准确的问题ID:先把你要查询的问题ID反复核对清楚,避免再次写错。
- 使用正确的API端点:接口结构为
https://api.stackexchange.com/2.3/questions/{问题ID}/answers(当前API最新稳定版本是2.3)。 - 添加关键参数优化结果:
- 必须加
site=stackoverflow指定目标站点。 - 要直接拿到最高评分的答案,添加
sort=votes和order=desc参数,这样返回结果的第一条就是赞数最高的答案。 - 如果想获取完整的答案正文(默认只返回摘要),可以追加
filter=withbody参数。
- 必须加
示例调用
假设你要查询的问题ID确实是32209879,正确的调用URL如下:
https://api.stackexchange.com/2.3/questions/32209879/answers?site=stackoverflow&sort=votes&order=desc&filter=withbody
额外补充:如果之后你是已知答案ID要抓取单条答案,才会用到/answers/{ids}接口,比如https://api.stackexchange.com/2.3/answers/123456?site=stackoverflow&filter=withbody,但你当前的需求是通过问题ID找最高赞答案,所以用前面的端点才是正确路径。
内容的提问来源于stack exchange,提问作者teslae
相关产品推荐
相关产品推荐

