【问题标题】:Pytrends: For-Loop leads to Error Code 400Pytrends:For-Loop 导致错误代码 400
【发布时间】:2022-01-06 21:19:17
【问题描述】:

我尝试使用 pytrends 来提取 Google 趋势数据。您可以在下面看到我使用的代码:

from pytrends import dailydata

words = ['aaa', 'bbb']

chunks = [words[i:i+1] for i in range(len(list_all))[::1]]
for chunk in chunks:
    res = dailydata.get_daily_data(chunk, start_year=2020, start_mon=1, stop_year=2020, stop_mon=12, geo = '')
    res.to_csv(chunk[0]+'.csv')
    time.sleep(60)

如果没有 for 循环,一切都可以完美运行,但是一旦我使用 for 循环(我需要这样做,因为我有大量请求),我就会收到以下错误:

请求失败:Google 返回了代码为 400 的响应。 60 秒后重试。

你看出问题出在哪里了吗?

【问题讨论】:

  • Google 的 api 可能有请求限制,因此您只能在一定时间内向该 API 发送一定数量的请求。
  • 他们确实有,但那是错误 429。我用 time.sleep(60) 修复了这个问题,通常不会导致任何错误。我之前一直在使用interest_over_time(),结果是这样的。

标签: python python-3.x for-loop server google-trends


【解决方案1】:

块中的一个块是字符串列表,因为您将其构建为单词[i:i + 1]而不是单词[i]。但是,我从 get_daily_data API 文档中看到的是第一个参数必须是字符串而不是字符串列表。这可能会导致错误的请求并解释 400 代码。

【讨论】:

  • 太好了,这似乎有效!非常感谢!
猜你喜欢
  • 2017-09-11
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2018-11-06
  • 2018-12-22
相关资源
最近更新 更多