随着时间的推移,我正在使用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
答案 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