如何通过StackExchange API获取已采纳回答的Markdown格式内容
正确获取已采纳回答Markdown正文的操作步骤
你当前使用的search/advanced接口默认仅返回匹配问题的元数据,不包含回答内容,且默认返回渲染后的HTML格式内容,无法直接拿到原始Markdown,按以下步骤调整即可:
步骤1:调整搜索接口参数,获取已采纳回答ID
在你现有的请求参数基础上新增filter=with-accepted-answer,请求示例如下:
https://api.stackexchange.com/2.3/search/advanced?accepted=True&title=length%20undefined&is_answered=True&site=stackoverflow&filter=with-accepted-answer
返回结果中每个问题条目下的accepted_answer_id字段即为该问题已采纳回答的唯一ID。
步骤2:调用回答接口获取原始Markdown内容
将上一步获取的所有accepted_answer_id用分号拼接,调用answers接口,同时添加返回Markdown内容的专用filter,请求示例如下:
https://api.stackexchange.com/2.3/answers/{你拼接的回答ID列表}?site=stackoverflow&filter=!9Z(-wwYGT
上述请求使用的预设filter会直接返回回答的原始Markdown内容,如果你需要额外字段,可以自行构造符合要求的filter参数。
步骤3:提取目标内容
解析接口返回结果,每个回答条目中的body_markdown字段就是你需要的已采纳回答的Markdown格式正文。
额外优化方案
如果不想分两次请求,可以直接自定义search/advanced接口的filter,加入answers.body_markdown和accepted_answer_id字段,单次请求即可拿到该问题下所有回答的Markdown内容,再通过accepted_answer_id匹配对应采纳回答即可。
注意事项
- 未认证的应用请求频率限制为每分钟30次,完成认证后可提升到每日10000次
- 所有需要获取原始Markdown的请求,必须保证filter包含
body_markdown相关字段,默认filter仅返回渲染后的HTML内容
内容的提问来源于stack exchange,提问作者user11740269
相关产品推荐
相关产品推荐

