python - 使用 pytrend 按国家/地区获取 2019 年的总体趋势
问题描述
我想在 2019 年获得法国的最高图表,但我的代码有一些问题:
!pip install pytrends
import pandas as pd
from pytrends.request import TrendReq
import pytrends
pytrend = TrendReq(hl='fr-FR', tz = 360)
df = pytrend.trending_searches(pn='france')
print(df.head())
df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FRANCE')
print(df.head())
IndexError Traceback (most recent call last)
<ipython-input-14-87584cc2de91> in <module>()
7 print(df.head())
8
----> 9 df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FRANCE')
10 print(df.head())
/usr/local/lib/python3.6/dist-packages/pytrends/request.py in top_charts(self, date, hl, tz, geo)
435 trim_chars=5,
436 params=chart_payload,
--> 437 )['topCharts'][0]['listItems']
438 df = pd.DataFrame(req_json)
439 return df
IndexError: list index out of range
因此,如果有人知道如何通过 python 和 py 趋势获得法国 2019 年的顶级图表
问候
解决方案
df = pytrend.top_charts(2019, hl='fr-FR', tz=360, geo='FR')
应该修复它
这是top_chart
实现,如您所见,geo
参数似乎是大写的,显然geo
for France 应该是FR
:
def top_charts(self, date, hl='en-US', tz=300, geo='GLOBAL'):
"""Request data from Google's Top Charts section and return a dataframe"""
# create the payload
chart_payload = {'hl': hl, 'tz': tz, 'date': date, 'geo': geo,
'isMobile': False}
# make the request and parse the returned json
req_json = self._get_data(
url=TrendReq.TOP_CHARTS_URL,
method=TrendReq.GET_METHOD,
trim_chars=5,
params=chart_payload,
)['topCharts'][0]['listItems']
df = pd.DataFrame(req_json)
return df
推荐阅读
- javascript - 对于移动设备,如何以编程方式禁用自动对焦输入?
- python - 在python中读取没有锁定的txt文件
- reactjs - Material ui单选按钮组在选择时不改变
- elasticsearch - 术语查询在弹性搜索中不起作用,其中包含空间的值
- python - 根据条件将 pyspark 数据帧拆分为多个数据帧
- c# - 模拟:异步方法的 SetReturnsDefault 始终返回 null
- hashicorp-vault - Vault (HashiCorp) - curl 相当于“vault read”
- java - 将订单代码转换为预购和后购
- image - 去除身份证上的卷曲线
- oracle - 更改 USER_ROLES_PRIVS 表中公共列的脚本