Pytrends趋势结果与手动下载的数据不相似

时间:2016-09-23 04:59:25

标签: python-3.x google-trends

我使用pytrends从Google趋势中自动下载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)

谷歌网站前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

有人知道原因吗?谢谢。

1 个答案:

答案 0 :(得分:2)

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

手动和gtrend下载之间的区别可能与它们与提取数据方法不同的事实有关。 gtrend会下载https://www.google.com/trends/fetchContent类型的网址....我现在知道如何处理手动下载,但我知道还有另一种提取数据的方法,例如https://www.google.com/trends/trendsReport ..后者每周都会返回一切(非常丰富)。

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