Pytrends: многократный запуск одного и того же скрипта дает результаты для разных наборов стран - PullRequest
0 голосов
/ 12 февраля 2019

Я использую 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 Ответ

0 голосов
/ 13 февраля 2019

Я знаю, что ответ может быть очевидным, но вы проверили, все ли ваши запросы были успешными при каждом запуске?Если вы выполняете код, который отправляет множество запросов к 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
...