python-3.x - Pytrends 趋势结果与手动下载的数据不相似

标签 python-3.x google-trends

我用 pytrends自动下载 csv 中的数据从谷歌趋势。我使用的代码如下。在这种情况下,我正在下载从 2008 年到现在的每月谷歌趋势数据。

from pytrends.request import TrendReq
from urllib.parse import unquote
from dateutil.relativedelta import relativedelta
import datetime
import pytrends

google_username = "xxxxx@gmail.com"
google_password = "xxxxx"

search_term = unquote('%2Fm%2F07gyp7')
google_trend = TrendReq(google_username, google_password, custom_useragent='Pytrends'  )
google_trend_payload = {'gprop' : 'news' , 'q': search_term}
trendresult = TrendReq.trend(google_trend_payload, return_type = 'dataframe')
print(trendresult)

google 网站前 5 个月的结果与 pytrends 的结果对比:
Date          Pytrends data          Manual csv data
2008-01       21.0                   28.0
2008-02       16.0                   19.0
2008-03       16.0                   21.0
2008-04       15.0                   18.0
2008-05       22.0                   31.0

有谁知道原因吗?谢谢你。

最佳答案

我遇到了同样的问题,所以我不得不在我的项目中手动下载。现在,我已经知道原因了。这是谷歌的抽样方法。谷歌每天都会返回不同的趋势系列。想象一下,谷歌有 1000 万台服务器,每天,对于每个查询,它只对 1 万台服务器进行采样。因此,为了获得一致的系列,您可以取 30(甚至 50)次并取平均值。对于数值不太小的系列(最低可能超过 30),标准偏差约为 5%(可接受)。

手动下载和gtrend下载的区别可能与它们提取数据的方法不同有关。 gtrend下载类型为https://www.google.com/trends/fetchContent的url .... 我现在知道如何处理手动下载,但我知道还有另一种提取数据的方法,例如 https://www.google.com/trends/trendsReport ……后者返回每周系列的所有内容(非常丰富)。

目前,似乎存在配额限制问题。

关于python-3.x - Pytrends 趋势结果与手动下载的数据不相似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39652907/

相关文章:

javascript - Google 趋势嵌入和 X-Frame-Options

javascript - PhantomJS 浏览器未加载某些 url 的 javascript

python - 带有单个元素的 zip 列表

python - if else 在带有 for 循环的列表理解中

python-3.x - 元类的 "__init_subclass__"方法在这个元类构造的类中不起作用

c# - 从 Google Trends 下载 .csv 文件

python-3.x - 编写基本的 XOR 神经网络程序

python - 使用 beautifulsoup 从 youtube channel 获取链接的问题

python - 如何使用使用pytrends获得的Google Trends历史趋势数据