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

如何使用NewsAPI遍历所有分页结果,获取全部指定主题新闻文章?

遍历NewsAPI所有搜索结果的实现方法

要批量获取NewsAPI的全部搜索结果,核心是先拿到总结果数,再按分页循环请求每一页,具体操作如下:

实现步骤

  • 先发起一次初始请求(默认返回第一页),从响应里提取totalResults字段,这是匹配搜索条件的总文章数量
  • 计算总页数:因为API每页最多返回100条,总页数可以用整数运算(总结果数 + 99) // 100来实现向上取整
  • 循环遍历每一页,从第1页到计算出的总页数,每次请求传入对应的page参数,把所有页的文章数据合并收集

完整代码示例

from newsapi import NewsApiClient

# 初始化API客户端
newsapi = NewsApiClient(api_key='Your_API_Key')

# 定义统一的搜索参数
search_config = {
    "q": "election AND (British OR England OR Britain OR (United AND Kingdom))",
    "language": "en",
    "from_param": "2024-05-12",
    "to": "2024-05-13"
}

# 获取第一页数据,同时拿到总结果数
first_page_data = newsapi.get_everything(**search_config)
total_articles = first_page_data['totalResults']
all_articles = first_page_data['articles']

# 计算需要请求的总页数
total_pages = (total_articles + 99) // 100

# 从第2页开始循环请求后续页面
for page_num in range(2, total_pages + 1):
    current_page_data = newsapi.get_everything(**search_config, page=page_num)
    all_articles.extend(current_page_data['articles'])

# 验证收集结果
print(f"共收集到 {len(all_articles)} 篇符合条件的文章")

场景说明

比如你提到的totalResults=119的情况,总页数计算为(119+99)//100=2,会自动请求第1页(100条)和第2页(19条),最终合并得到全部119篇文章。

注意:NewsAPI免费版有请求次数限制,批量请求时建议适当添加请求间隔,避免触发限流。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:12:34