Pytrends: многократный запуск одного и того же скрипта дает результаты для разных наборов стран

Я использую pytrends для извлечения индекса запросов из Google Trends для нескольких стран с течением времени. Поскольку представляется невозможным указать несколько стран, используя гео, я использую Проценты по времени для каждой страны и перебираю список многих стран.

Проблемы

1) Поскольку я неоднократно запускаю этот же сценарий (с промежуточным ожиданием), каждый раз полученные CSV-файлы содержат разные подмножества стран. Некоторые страны с кажущимися нормальными значениями (намного превышающими 0) в одном беге полностью исчезнут в другом беге.

2) Некоторые страны с допустимыми значениями при ручной загрузке с веб-сайта Trends отсутствуют при запуске сценария.

Каковы могут быть возможные причины этих проблем? Большое спасибо!

Пример кода:

from pytrends.request import TrendReq

pytrend = TrendReq()

coun=('''AU
FI
GB
HU
IL
JP
NL
NZ
PT
US
''').split()

for country in coun:
    try:
        pytrend.build_payload(kw_list=['holiday'], timeframe='all', geo=country)
        interest_over_time_df = pytrend.interest_over_time()
        interest_over_time_df.to_csv(country+'_holiday.csv')    
    except:
        continue

1 ответ

Решение

Я знаю, что ответ может быть очевидным, но вы проверили, все ли ваши запросы были успешными при каждом запуске? Если вы выполняете код, который отправляет множество запросов к API, вы можете легко превысить их максимальный лимит запросов и получить отказ в доступе. Проверьте это с помощью следующего кода:

from pytrends.request import TrendReq

pytrend = TrendReq()

coun=('''AU
FI
GB
HU
IL
JP
NL
NZ
PT
US
''').split()

for country in coun:
    try:
        pytrend.build_payload(kw_list=['holiday'], timeframe='all', geo=country)
        interest_over_time_df = pytrend.interest_over_time()
        interest_over_time_df.to_csv(country+'_holiday.csv')
        print(country + ' was succesfully pulled from google trends and stored in ' + country + '_holiday.csv')
    except Exception as e:
        print(country + ' was not successfully pulled because of the following error: ' + str(e))
        continue
Другие вопросы по тегам