如何在美国以外的国家/地区使用Pytrends API

时间:2018-10-19 09:15:27

标签: python python-3.x api

我想获得瑞士过去几年的顶级排行榜。首先,我尝试使用为美国提供的示例来测试代码。

pytrends = TrendReq(hl='en-US', tz=360)
top = pytrends.top_charts('201801', 'actors', geo='US', cat='')

,并且有效。如果我看一下URL,它看起来像https://trends.google.com/trends/topcharts#vm=trendingchart&cid=actors&geo=US&date=201801&cat=,这很有道理。

接下来,我想获得瑞士(CH)的排行榜。我去google trends并选择了瑞士,我意识到日期字段只是年份(例如2017),而不是美国的年份和月份(例如201701)。我也意识到类别是德语(我住在瑞士,没有使用任何代理)。该网址看起来与美国不同:https://trends.google.com/trends/topcharts#vm=trendingchart&cid=cc6d37e9-0573-4579-a813-3c18cd6da621&geo=CH&date=2017&cat=

因此,我将参数设置如下:  1. cid='cc6d37e9-0573-4579-a813-3c18cd6da621',因为我相信这就是Google处理其他语言(例如“Städte&Dörfer”(城镇))类别的方式。  2. geo='CH'  3.我不确定如何设置句柄参数,因此我使用hl='de-CH',其中de是德语,CH是瑞士,tz=48

然后,我尝试运行:

pytrends = TrendReq(hl='de-CH', tz=48)
top = pytrends.top_charts('2018', 'cc6d37e9-0573-4579-a813-3c18cd6da621', geo='CH', cat='') 

还有:

pytrends = TrendReq(hl='en-US', tz=360)
top = pytrends.top_charts('2018', 'cc6d37e9-0573-4579-a813-3c18cd6da621', geo='CH', cat='')

两者都不起作用,并输出以下错误:

Traceback (most recent call last):
File "/Users/jguedes/trends/get_trends.py", line 6, in <module>
top = pytrends.top_charts('2018', 'cc6d37e9-0573-4579-a813-3c18cd6da621', geo='CH', cat='')
File "/Users/jguedes/anaconda3/lib/python3.6/site-packages/pytrends/request.py", line 344, in top_charts
params=chart_payload,
File "/Users/jguedes/anaconda3/lib/python3.6/site-packages/pytrends/request.py", line 101, in _get_data
'response with code {0}.'.format(response.status_code), response=response)
pytrends.exceptions.ResponseError: The request failed: Google returned a response with code 404.

有人知道如何在瑞士或其他国家/地区获得年度排行榜吗?

0 个答案:

没有答案