Google News SERP 请求如何工作?

发送查询词并选择 Google 新闻搜索类型。接口返回的是当前新闻结果页快照,不是长期保存的新闻数据库,也不是某个主题下所有新文章的实时订阅流。

curl https://api.serqo.io/v1/search \
  -H "x-api-key: $SERP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"可再生能源","engine":"google","type":"news","gl":"cn","hl":"zh-CN","tbs":"qdr:w"}'

q 设置查询词,gl 设置国家市场,hl 设置界面语言。示例中的 tbs: "qdr:w" 表示 Google 过去一周筛选;接口支持 qdr:d、qdr:w 和 qdr:m 等 Google 时间筛选语法。使用其他筛选写法前请查看 Google News API 参考。

读取新闻条目字段

新闻条目位于 data.results。根据搜索结果,字段可能包含 position、title、url、source、date、snippet 和 thumbnail。日期字段是提取到的展示文本,例如“2 hours ago”,不保证是 ISO 时间戳。需要准确的时间序列分析时,应另存采集时间。

设计实用的监测流程

  1. 使用范围明确的查询词描述要关注的主题或事件。
  2. 固定本次任务使用的 gl、hl 和支持的时间筛选条件。
  3. 由应用按照业务需要的频率定时请求。
  4. 保存请求条件、采集时间、来源和文章链接;可行时用稳定 URL 去重。
  5. 观察结果覆盖范围和排序变化,不要把单次响应当作新闻全量清单。

这个 API 不会提供什么?

新闻 SERP 请求不保证覆盖所有文章、连续推送、全文内容或永久准确的发布时间。返回结果只代表 Google 在采集时针对特定查询和条件展示的内容;结果可用性和顺序都可能变化。

常见问题

能否只看最近一天或一周的 Google News 结果?

支持的 Google 请求可以通过 tbs 使用 qdr:d、qdr:w 等时间筛选。请使用文档列出的语法,并检查响应;筛选条件不保证固定的结果数量。

结果日期是准确的发布时间吗?

不一定。返回的 date 可能是相对时间文本。应保存自己的采集时间;除非已向发布方核实,否则不要把展示文本转换成精确的发布时间。

能否翻页获取所有 Google News 新闻?

不断变化的搜索结果页无法保证完整覆盖所有报道。如果 data.pagination.hasNext 为真,可按文档使用 nextStart 请求下一页,但每一页仍是一次新的快照请求。

查看 Google News API 参考和 Google SERP API 指南。