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

使用pytrends获取相关查询时触发列表索引越界错误

解决pytrends抓取Google/Facebook相关查询时的索引越界问题

问题原因

像Google、Facebook这类超级热门的关键词,Google Trends返回的相关查询数据结构和普通关键词存在差异:要么是你指定的短时间范围(now 7-d)内没有“上升查询(rising)”数据,要么是pytrends解析返回结果时,因对应列表为空触发了索引越界错误。

解决方案

1. 增加数据存在性校验

不要直接硬取related_queries[kw]['rising'],先逐层检查数据是否存在、是否非空,避免直接访问不存在的键或空列表导致报错。

2. 调整时间范围(可选)

热门词短时间内的上升查询可能没有更新,试试把时间范围改成today 3-m(过去3个月)这类更长的周期,大概率能返回有效数据。

修改后的代码

from pytrends.request import TrendReq

pytrends = TrendReq(hl='en-US', tz=360)
keywords = ['Google', 'Facebook']

for kw in keywords:
    try:
        pytrends.build_payload([kw], cat=0, timeframe='today 3-m', geo='', gprop='')
        related_queries = pytrends.related_queries()
        
        # 逐层校验数据是否存在
        if kw in related_queries:
            query_data = related_queries[kw]
            if 'rising' in query_data and not query_data['rising'].empty:
                rising = query_data['rising']
                print(f"Top rising related queries for {kw}:\n", rising)
            else:
                print(f"ℹ️ No rising related queries found for '{kw}'")
        else:
            print(f"ℹ️ No related queries data available for '{kw}'")
            
    except IndexError as e:
        print(f"⚠️ Index error for '{kw}':", e)
    except Exception as e:
        print(f"⚠️ Unexpected error for '{kw}':", e)

代码说明

  • 先检查关键词是否在related_queries结果中,再检查'rising'键是否存在,同时用not empty判断DataFrame是否有有效数据
  • 把时间范围改成了today 3-m,如果还是不行可以尝试all(所有时间范围)
  • 拆分了异常捕获,将索引越界单独处理,更方便定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 00:14:55