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

如何通过StackOverflow API获取指定日期范围内的全部问题?

获取Stack Overflow指定日期范围内所有问题的方法

Stack Exchange API默认每页返回20条数据,要获取指定日期范围内的所有问题,需要利用API的分页机制遍历所有结果,具体操作如下:

  • 调整请求参数,将pagesize设为最大值100(API允许的单页最大返回数),减少请求次数
  • 循环发送请求,每次递增page参数,直到返回结果中的has_more字段为false(表示无更多数据)
  • 每次请求后,将返回的items列表合并到总结果中

修改后的代码示例:

import requests

base_url = 'https://api.stackexchange.com/2.3'
endpoint = '/questions'
params = {
    'site': 'stackoverflow',
    'tagged': tag,
    'fromdate': start_date,
    'todate': end_date,
    'filter': 'default',
    'pagesize': 100,  # 设置单页最大返回数
    'page': 1  # 初始页码
}

all_questions = []
while True:
    response = requests.get(base_url + endpoint, params=params)
    response.raise_for_status()  # 捕获请求错误
    data = response.json()
    
    # 合并当前页问题到总列表
    all_questions.extend(data.get('items', []))
    
    # 判断是否还有更多数据
    if not data.get('has_more', False):
        break
    
    # 更新页码,继续请求下一页
    params['page'] += 1

# all_questions即为指定日期范围内的所有问题
print(f"共获取到{len(all_questions)}条问题")

注意事项:

  • Stack Exchange API有请求频率限制,避免短时间内发送过多请求,必要时可添加短暂延迟
  • 若返回结果中出现backoff字段,需按提示等待对应秒数后再继续请求
  • 确保tag、start_date、todate变量已正确赋值(日期需转换为Unix时间戳)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:03:07