Pytrends:重复运行同一脚本可得出不同国家/地区的结果

时间:2019-02-12 02:19:26

标签: python google-trends

随着时间的推移,我正在使用pytrends从Google趋势中提取多个国家的查询索引。 由于似乎无法使用地理位置指定多个国家/地区,因此我对每个国家/地区使用随时间变化的兴趣,并遍历许多国家/地区的列表。

问题是

1)当我反复运行相同的脚本(之间等待)时,每次生成的csv文件包含不同的国家子集。在某些运行中具有看似正常值(远大于0)的国家在另一运行中将完全消失。

2)运行脚本时,缺少从趋势网站手动下载时具有有效值的某些国家/地区。

这些问题的可能原因是什么?非常感谢!

代码示例:

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 :(得分: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