【问题标题】:Pytrends trend results not similar with manually downloaded dataPytrends 趋势结果与手动下载的数据不相似
【发布时间】:2016-12-30 19:25:01
【问题描述】:

我使用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

有人知道原因吗?谢谢。

【问题讨论】:

    标签: python-3.x google-trends


    【解决方案1】:

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

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

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

    【讨论】:

    • 我发现使用 Selenium 测试框架最有效的方法。我还没有完全完成这项工作,但基本的想法可以在这里找到yseam.com/blog/TR.html。由于 google 更改了页面上的规范,我们还需要更改链接中提供的一些代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2012-01-27
    • 2021-09-02
    • 2022-01-18
    • 1970-01-01
    • 2019-01-31
    相关资源
    最近更新 更多