标签: google-trends

自动从Google趋势中提取csv文件

pyGTrends似乎不起作用.在Python中给出错误.

pyGoogleTrendsCsvDownloader似乎工作,登录,但在获得1-3个请求(每天!)抱怨耗尽配额后,即使手动下载相同的登录/ IP工作完美无瑕.

底线:既不起作用.搜索stackoverflow:人们试图从谷歌中提取csv的许多问题,但我找不到可行的解决方案......

提前谢谢:谁能提供帮助.如何更改代码?你知道另一个有效的解决方案吗?

这是pyGoogleTrendsCsvDownloader.py的代码

import httplib
import urllib
import urllib2
import re
import csv
import lxml.etree as etree
import lxml.html as html
import traceback
import gzip
import random
import time
import sys

from cookielib import Cookie, CookieJar
from StringIO import StringIO


class pyGoogleTrendsCsvDownloader(object):
'''
Google Trends Downloader
Recommended usage: 
from pyGoogleTrendsCsvDownloader import pyGoogleTrendsCsvDownloader
r = pyGoogleTrendsCsvDownloader(username, password)
r.get_csv(cat='0-958', geo='US-ME-500')
'''
def __init__(self, username, password):
    '''  
Provide login and password to be used to connect to Google Trends
All …
Run Code Online (Sandbox Code Playgroud)

google-trends

5
推荐指数
1
解决办法
2397
查看次数

今天Google Trends针对特定查询

我使用以下网址从Google趋势中获取必要的数据:http://www.google.com/trends/fetchComponent? q = doci&cid = TIMESERIES_GRAPH_0&export = 3&date = 4/2013 + 3m& hl = zh-CN

但Google趋势的输出不包含昨天和今天的数据(即使按过去几小时推断).例如,2013-04-28中的上述URL返回了包含以下片段的JavaScript代码:

...,
{"c":[{"v":new Date(2013,3,26),"f":"Friday, April 26, 2013"},{"v":65.0,"f":"65"}]},
{"c":[{"v":new Date(2013,3,27),"f":"Saturday, April 27, 2013"},{"v":null}]},
{"c":[{"v":new Date(2013,3,28),"f":"Sunday, April 28, 2013"},{"v":null}]},
...
Run Code Online (Sandbox Code Playgroud)

请注意4月27日,28日的空值.
但是,正如我们所知,"热门趋势"可按小时粒度提供.这假设Google拥有足够的数据来为我们提供"完整答案",即使对于与特定查询相关的趋势请求,不仅仅是"最热门".

是否有人知道如何从Google趋势中获取特定查询的最新日常数据?或者,可能是从其他来源获得类似趋势数据的变通方法?

google-trends

5
推荐指数
0
解决办法
1695
查看次数

从Google趋势下载.csv文件

我想从我通过代码创建的网址下载Google趋势数据.当这些URL放入浏览器(我使用firefox)时会显示一个保存提示,我可以选择在查看浏览器时打开或保存文件.但是,我希望通过代码包含Google趋势数据的相同.csv文件,我被困住了.

这是我的代码创建的链接之一:[提示下载,但是是Google]

https://www.google.com/trends/trendsReport?hl=en-US&q=debt&geo=US&date=now%207-d&cmpt=q&content=1&export=1

我有这个链接的两个问题,它要么下载带有中文字符的.csv文件(我相信已损坏?),要么下载一些HTML(如下所示).当HTML保存为HTML文件并运行时,它会将我带到Google趋势主页,其中包含看似无用的URL:

https://www.google.com/trends/#geo=US&date=now+7-d&cmpt=q&q=debt&hl=en-US&content=1

<html><head><title>Redirecting</title>

<script type="text/javascript" language="javascript">
  // Accessing window.external members can cause IE to throw exceptions.
  // Any code that acesses window.external members must be try/catch wrapped
  /** @preserveTry */
  try {
    if (top == self) {
      if (window.gtbExternal) {
        window.gtbExternal.setM();
      } else {
        window.external.setM();
      }
    }
  }
  catch(err) {
  }
</script>

<meta http-equiv="refresh" content="0; url=&#39;http://www.google.com/trends#geo=US&amp;date=now+7-d&amp;cmpt=q&amp;q=debt&amp;hl=en-US&amp;content=1&#39;">
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000cc" vlink="#551a8b" alink="#ff0000"><script type="text/javascript" language="javascript">
location.replace("http://www.google.com/trends#geo\x3dUS\x26date\x3dnow+7-d\x26cmpt\x3dq\x26q\x3ddebt\x26hl\x3den-US\x26content\x3d1")
</script></body></html>
Run Code Online (Sandbox Code Playgroud)

另外,这里是我用来下载.csv文件的代码,基本的WebClient下载方法,字符串url可以用上面的URL代替.

public static void Download(string url) …
Run Code Online (Sandbox Code Playgroud)

c# csv webclient google-trends

5
推荐指数
1
解决办法
2033
查看次数

pytrends(谷歌趋势)每日频率

我正在使用 pytrends python 包来提高搜索词的流行度。看起来默认频率是每周,但我需要每日数据。有没有一个参数可以调整?我似乎找不到任何东西。这是一些代码可以让你到达同一个地方......

import pytrends
import matplotlib.pyplot as plt
%matplotlib inline
from pytrends.request import TrendReq
pytrends = TrendReq(hl='en-US', tz=360)

pytrends.build_payload(["sp500", "dogs"], cat=0, timeframe='today 5-y', geo='', gprop='')

df = pytrends.interest_over_time()
df.tail()
Run Code Online (Sandbox Code Playgroud)

如您所见,返回的数据帧每周进行一次采样。我怎样才能获得 5 年前但每天的相同数据?

python pandas google-trends

5
推荐指数
1
解决办法
9832
查看次数

在 pytrend API 偏移量中获取另一个时区

我对这里的 pytrends api 非常陌生

但是我不明白如何定义偏移时区。教程是这样的

pytrends = TrendReq(hl='en-US', tz=360)
Run Code Online (Sandbox Code Playgroud)

带有 tz 的文档(我假设是时区)

tz :
Timezone Offset
For example US CST is '360'
Run Code Online (Sandbox Code Playgroud)

我尝试到处搜索,但我只是不明白 US CST = 360。请帮助我理解这一点。另外,如果可能的话,我想使用印度尼西亚雅加达时区,即 UTC+7

谢谢

python api google-trends

5
推荐指数
1
解决办法
2497
查看次数

Google 趋势小部件 - 相关查询 - 通过自动点击 (ng-click) 将视图从热门更改为上升

Google Trends 允许在任何 HTML 页面上嵌入搜索趋势数据的小部件。“相关查询”小部件显示热门和上升搜索查询的数据。默认情况下,当嵌入的小部件加载时,它会显示热门查询。

我想默认显示“上升查询”视图而不是“热门查询”视图。可以从小部件菜单手动切换。我正在寻找一种方法来自动化该过程,方法是在 HTML 页面上的 1 个或多个小部件中仅显示上升的查询视图。

“Stack Overflow”关键字的相关查询小部件示例:https ://jsfiddle.net/Lox8heyt/

图片: https: //i.stack.imgur.com/Wnqxa.png

<script type="text/javascript" src="https://ssl.gstatic.com/trends_nrtr/2213_RC01/embed_loader.js"></script> <script type="text/javascript"> trends.embed.renderExploreWidget("RELATED_QUERIES", {"comparisonItem":[{"keyword":"Stack Overflow","geo":"","time":"today 12-m"}],"category":0,"property":""}, {"exploreQuery":"q=Stack%20Overflow&date=today 12-m","guestPath":"https://trends.google.com:443/trends/embed/"}); </script> 
Run Code Online (Sandbox Code Playgroud)

Google Trends API:我没有在小部件代码中找到更改视图的选项。

是否可以通过JS自动点击小部件按钮将视图从顶部更改为上升?例如使用 XPath 或 JS 路径?

NG-点击:

ng-click="ctrl.setViewField('risingBullets')
ng-click="ctrl.setViewField('bullets')"
Run Code Online (Sandbox Code Playgroud)

X路径:

//*[@id="menu_container_0"]/md-menu-content/md-menu-item[1]/button
Run Code Online (Sandbox Code Playgroud)

JS路径:

document.querySelector("#menu_container_0 > md-menu-content > md-menu-item:nth-child(1) > button")
Run Code Online (Sandbox Code Playgroud)

选择器:

#menu_container_0 > md-menu-content > md-menu-item:nth-child(1) > button
Run Code Online (Sandbox Code Playgroud)

javascript jquery xpath angularjs google-trends

5
推荐指数
1
解决办法
875
查看次数

如何在R中获得Google Trends十大搜索字词?

在RI中,您希望从特定类别的Google趋势中获得前10个搜索字词.例如,类别autmotive的前10个搜索字词包含在此网址中:

url <- "https://www.google.com/trends/explore#cat=0-47&geo=US&cmpt=q&tz=Etc%2FGMT-1"
Run Code Online (Sandbox Code Playgroud)

要检索搜索字词,我尝试了以下操作:

library("rvest")
top_searches <- url %>%
  read_html() %>%
  html_nodes(xpath='//*[@class="trends-bar-chart-name"]') %>%
  html_table()
Run Code Online (Sandbox Code Playgroud)

但是,此代码会生成一个空列表(请注意,我使用Selectorgadget来计算'xpath').

r css-selectors google-trends rvest

3
推荐指数
1
解决办法
437
查看次数

Pytrends:请求失败:Google返回了代码为429的响应

我正在使用Pytrends来提取Google趋势数据,例如:

from pytrends.request import TrendReq
pytrend = TrendReq()
pytrend.build_payload(kw_list=['bitcoin'], cat=0, timeframe=from_date+' '+today_date)
Run Code Online (Sandbox Code Playgroud)

它返回一个错误:

ResponseError: The request failed: Google returned a response with code 429.
Run Code Online (Sandbox Code Playgroud)

我昨天做了,由于某种原因它现在不起作用!来自github的源代码也失败了:

pytrends = TrendReq(hl='en-US', tz=360, proxies = {'https': 'https://34.203.233.13:80'})
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?非常感谢!

python google-trends

2
推荐指数
2
解决办法
4242
查看次数

来自pytrends.pyGTrends导入pyGTrendsnot工作

我使用这个轮文件pytrends.whl和下面的目录安装了pytrends

 Directory of C:\Python35\Lib\site-packages\pytrends

09/15/2016  10:30 AM    <DIR>          .
09/15/2016  10:30 AM    <DIR>          ..
09/15/2016  10:30 AM             6,799 request.py
09/15/2016  10:30 AM                 0 __init__.py
09/15/2016  10:30 AM    <DIR>          __pycache__
               2 File(s)          6,799 bytes
               3 Dir(s)  323,016,486,912 bytes free
Run Code Online (Sandbox Code Playgroud)

 Directory of C:\Python35\Lib\site-packages\pytrends-3.1.0.dist-info

09/15/2016  10:30 AM    <DIR>          .
09/15/2016  10:30 AM    <DIR>          ..
09/15/2016  10:30 AM             7,900 DESCRIPTION.rst
09/15/2016  10:30 AM                 4 INSTALLER
09/15/2016  10:30 AM             8,622 METADATA
09/15/2016  10:30 AM               878 metadata.json
09/15/2016  10:30 AM               835 RECORD
09/15/2016 …
Run Code Online (Sandbox Code Playgroud)

python google-trends

1
推荐指数
1
解决办法
2708
查看次数

pytrends的结果如何处理?

所以我是python的新手,使用pytrends时遇到了问题。我正在尝试比较5个搜索词并将总和存储在CSV中。

我现在遇到的问题是我似乎无法隔离返回的单个元素。我有数据,可以看到,但是我似乎无法隔离一个元素,以能够对它做任何有意义的事情。

我在其他地方找到了使用iloc的建议,但这并不会为显示的内容返回任何内容,如果我仅传递一个参数,它似乎会显示所有内容。

感觉真是愚蠢,但我只是想不通,也无法在网上找到任何东西。

from pytrends.request import TrendReq
import csv
import pandas
import numpy
import time

# Login to Google. Only need to run this once, the rest of requests will use the same session.
pytrend = TrendReq(hl='en-US', tz=360)

with open('database.csv',"r") as f:
    reader = csv.reader(f,delimiter = ",")
    data = list(reader)
    row_count = len(data)
    comparator_string = data[1][0] + " opening"
print("comparator: ",comparator_string,"\n")

#Initialize search term list including comparator_string as the first item, plus 4 search terms
kw_list=[]
kw_list.append(comparator_string)

for x …
Run Code Online (Sandbox Code Playgroud)

python python-3.x google-trends

0
推荐指数
1
解决办法
4140
查看次数