Ошибка Google Trends: извините, наши системы сейчас немного перегружены и требуют глубокого вдоха
Я недавно работал с Google Trends, используя Pytrends Python. И я обнаружил следующую ошибку при случайных запросах:
Response did not parse. See server response for details.
Sorry, our systems are a little stressed out right now and need to take a deep breath. Please try again in a few moments.
После поиска я обнаружил, что это связано с ограничением квоты Google Trends. Например, речь идет об упомянутой проблеме.
Но в моем случае я испытывал это даже во время моего первого запроса после длительного периода времени, и я продолжаю получать его несколько раз, пока, наконец, не получу правильный ответ. Успешный ответ происходит один раз примерно за 5 запросов, тогда как остальные являются ошибочными.
Примечание: нужно отметить, что я столкнулся с этой проблемой только сегодня, хотя я никогда не сталкивался с этим, когда использовал Google Trends в течение последних двух дней.
Связанные фрагменты кода следующие:
pytrends = get_pytrends()
payload = {'q': 'chelsea', 'date' : 'now 12-H'}
print(json.dumps(pytrends.trend(payload, return_type='json'), indent=4))
get_pytrends ()
def get_pytrends():
try:
google_username = os.environ['GOOGLE_USERNAME']
google_password = os.environ['GOOGLE_SECRET']
except KeyError:
sys.stderr.write("GOOGLE_* environment variables not set\n")
sys.exit(1)
pytrends = TrendReq(google_username, google_password, custom_useragent=None)
return pytrends
Что вызывает эту проблему и как я должен справиться с этим?
1 ответ
Этот термин называется сбросом нагрузки: это означает, что серверы Google достаточно умны, чтобы распознавать, когда они получают нагрузку, которую они не могут обработать (слишком много запросов), поэтому они начинают отбрасывать некоторые из них "на пол" (то есть отвечать ошибка, которую вы видите, вместо того, чтобы обрабатывать ее должным образом).
Способ решения этой проблемы со стороны клиента (ваш код) заключается в реализации механизма повторных попыток с экспоненциальным периодом ожидания отката между повторными попытками.
Вы можете увидеть больше об их SLA в их документах.