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

如何使用Python GoogleNews库获取谷歌新闻板块搜索结果总数

问题说明

是否有方法可通过Python GoogleNews库,提取谷歌搜索「新闻」板块下指定检索词的搜索结果总数量?
举例来说,搜索「iPhone 14 pro max」切换至新闻板块后,页面会展示类似「About 11,200,000 results」的结果总数提示,现有公开方案大多无法正常获取该字段。

实现方法

目前公开的GoogleNews第三方库默认仅解析新闻条目内容,没有内置返回结果总数的接口,只需要在库原有逻辑基础上增加少量页面解析代码,即可拿到目标数值,具体实现步骤如下:

  • 先安装所需依赖:
    pip install GoogleNews beautifulsoup4
  • 核心逻辑:库发起新闻搜索请求后会拿到完整的页面源码,谷歌新闻搜索页的结果总数固定存放在id为result-stats的页面标签中,通过正则提取标签内的数字即可,可直接运行以下代码:
from GoogleNews import GoogleNews
from bs4 import BeautifulSoup
import re
import time
import random

# 初始化搜索配置,可按需修改语言、区域、时间范围参数
gn = GoogleNews(lang='en', region='US')
keyword = "iPhone 14 pro max"
gn.search(keyword)

# 增加随机延时降低反爬概率
time.sleep(random.uniform(2,4))

# 获取请求返回的页面源码做解析
page_source = gn.get_page_source()
soup = BeautifulSoup(page_source, "html.parser")
stats_tag = soup.find("div", attrs={"id": "result-stats"})

if stats_tag:
    stats_text = stats_tag.text
    # 英文页面匹配规则,中文页面把正则改成r'约有 ([\d,]+) 条结果'即可
    count_match = re.search(r'About ([\d,]+) results', stats_text)
    if count_match:
        total = count_match.group(1)
        print(f"关键词「{keyword}」的新闻板块搜索结果总数:{total}")
else:
    print("未获取到结果统计,大概率触发了谷歌反爬机制,可尝试添加代理、更换请求头、拉长请求间隔后重试")
常见问题说明
  • 旧方案失效的核心原因是谷歌前端页面结构多次调整,早期用来定位结果数的class属性已经变更,2024年之后的页面版本使用id="result-stats"定位结果统计标签即可稳定获取内容。
  • 如果不需要依赖第三方GoogleNews库,也可以直接自行构造HTTP请求,只要在搜索请求参数中携带tbm=nws即可指定返回新闻板块的内容,后续解析逻辑和上述代码完全一致。
  • 短时间内发起大量请求很容易触发谷歌的人机验证,建议单次请求间隔设置在2秒以上,必要时搭配住宅代理使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:48:16