标签: google-trends

Google趋势的API替代方案

是否有任何API可用于根据受欢迎程度对搜索字词进行排名?宣布发布官方Google API,但没有任何.关于我可以选择使用什么的任何建议?

search-engine google-search google-trends

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

“ValueError:没有要连接的对象”是什么意思以及如何修复它?

我尝试从农业表中的谷歌趋势获取数据。第一次还算顺利,第二次就不太顺利了。我收到一个错误,名为:

ValueError:没有要连接的对象

我之前在 Stack Overflow 上搜索过这个错误,但没有找到任何解决方案。我使用下面显示的代码:

!pip install Pytrends
!pip install pandas
!pip install pytrends --upgrade <---------Note: this solved a different error.
from pytrends.request import TrendReq
import pandas as pd
import time
startTime = time.time()
pytrend = TrendReq(hl='nl-NL', tz=360)
df = wb = gc.open_by_url('https://docs.google.com/spreadsheets/d/1QE1QilM-GDdQle6eVunepqG5RNWv39xO0By84C19Ehc/edit?usp=sharing')
sheet = wb.sheet1
df2 = sheet.col_values(5)
d_from = sheet.acell('B7').value
d_to = sheet.acell('B8').value
geo1 = sheet.acell('B10').value
dataset = []
for x in range(1,len(df2)):
     keywords = [df2[x]]
     pytrend.build_payload(
     kw_list=keywords,
     cat=0,
     timeframe= str(d_from + " " + d_to),
     geo= …
Run Code Online (Sandbox Code Playgroud)

python pandas google-trends

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

Google趋势:获取绝对值

Google Trends Explore会返回上升主题的相对值.以及每个类别中的热门查询.它们并不是很有说服力,因为在从10到240个查询的趋势中可能会出现+ 2,400%,而更多的重要趋势是缺失的,例如那些从10K查询增加到200K查询的趋势.这可能是一个很好的研究工具,但如何从Google趋势中提取(重新计算等)这些项目的绝对查询数量?它不在其基本界面中; 只有找到一些提取和可能与其他来源混合的变通方法.

PS:有Google AdWords 关键字工具,可返回绝对值.虽然它的界面不太适合使用.

google-trends

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

为什么谷歌检索到与抓取工具不同的信息

我已经使用 pytrends(一个用于检索谷歌趋势数据的包)工作很长时间了,并意识到我在浏览器上得到的结果和使用 pytrends 得到的结果有很大不同。在检查了每个人正在执行的请求之后,我能够发现的唯一区别是他们都发出的请求中的用户类型参数,以及一些细微的更改,例如,浏览器使请求指示时区两次。

Browser:
"userConfig":{"userType":"USER_TYPE_LEGIT_USER"}
Pytrends:
"userConfig": {"userType": "USER_TYPE_SCRAPER"}
Run Code Online (Sandbox Code Playgroud)

请求中的时间范围、时区和其余参数都是相同的,但在对数据进行实际请求之前必须获取令牌。我不知道为什么会发生这种情况,而且我不认为令牌与您的请求有任何关系,再次,唯一的区别是指定不同用户类型的两个请求

现在我发布两个完整的请求,每个请求但令牌:

Pytrends

https://trends.google.com/trends/api/widgetdata/multiline?req={"time": "2014-12-28 2020-01-01", "resolution": "WEEK", "locale": "es", "comparisonItem": [{"geo": {"region": "ES-CM"}, "complexKeywordsRestriction": {"keyword": [{"type": "BROAD", "value": "gripe"}]}}], "requestOptions": {"property": "", "backend": "IZG", "category": 0}, "userConfig": {"userType": "USER_TYPE_SCRAPER"}}&token=TOKEN_HERE&tz=-120
Run Code Online (Sandbox Code Playgroud)
Browser
https://trends.google.es/trends/api/widgetdata/multiline?hl=es&tz=-120&tz=-120&req={"time":"2014-12-28 2020-01-01","resolution":"WEEK","locale":"es","comparisonItem":[{"geo":{"region":"ES-CM"},"complexKeywordsRestriction":{"keyword":[{"type":"BROAD","value":"gripe"}]}}],"requestOptions":{"property":"","backend":"IZG","category":0},"userConfig":{"userType":"USER_TYPE_LEGIT_USER"}}&token=TOKEN_HERE
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况以及我如何设法检索它们之间的一致数据?另外,如果您抓取他们的网站而不是使用浏览器,为什么谷歌会提供不同的数据?

python screen-scraping google-trends

7
推荐指数
0
解决办法
1047
查看次数

gtrendsR错误:widget $ status_code == 200不为TRUE

我使用最新版本的devtools :: install_github('PMassicotte/gtrendsR')

直到昨天晚上一切都很好.然后我收到此错误消息:

Error: widget$status_code == 200 is not TRUE
Run Code Online (Sandbox Code Playgroud)

码:

trend1 = gtrends("google", geo = c(""), time = "2014-07-28 2015-11-23")
Run Code Online (Sandbox Code Playgroud)

结果:

> trend1 = gtrends("google", geo = c(""), time = "2014-07-28 2015-11-23")
Error: widget$status_code == 200 is not TRUE
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决的问题?

r web-scraping google-trends gtrendsr

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

Google 趋势爬虫代码 429 错误

我是Python新手,使用非官方pytrendsAPI来抓取Google Trend。我有 2000 多个关键字作为 DNA 列表,并尝试抓取数据。当我运行此代码时,即使我添加了time.sleep(1). 谁能帮我解决这个问题吗?

下面是我的代码

#DNA has 2000+ lists
from pytrends.request import TrendReq
import pandas as pd
import xlsxwriter
import time

pytrends = TrendReq(hl='en-US,tz=360')
Data = pd.DataFrame()

#Google Trend Crawler
for i in range(DNA[i]):
    time.sleep(1)
    kw_list = [DNA[i]]
    pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='', gprop='')
    df = pd.DataFrame(pytrends.interest_over_time())

    #Setting a Google Trend Dates
    if(i==0):
        Googledate = pd.DataFrame(pytrends.interest_over_time())
        Data['Date'] = Googledate.index
        Data.set_index('Date', inplace=True)

    #results
    if(df.empty == True):
        Data[DNA[i]] = ""  
    else:
        df.index.name = …
Run Code Online (Sandbox Code Playgroud)

python google-api web-crawler google-crawlers google-trends

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

无需包装器或使用 API:Python 即可访问 Google 趋势数据

我正在尝试编写一个 Python 程序来从 Google 趋势 (GT) 中收集数据 - 具体来说,我想自动打开 URL 并访问折线图中显示的特定值:

在此处输入图片说明

我会很高兴下载 CSV 文件,或者通过网络抓取值(根据我对 Inspect Element 的阅读,清理数据只需要一两个简单的拆分)。我要进行许多搜索(许多不同的关键字)

我正在创建许多 URL 来从 Google 趋势中收集数据。我使用了测试搜索中的实际 URL。URL 示例:https : //trends.google.com/trends/explore?q= sports%20cars &geo= US 在浏览器上实际搜索此 URL 会显示相关的 GT 页面。当我尝试通过程序访问它时,问题就出现了。

我看到的大多数回复都建议使用来自 Pip 的公共模块(例如 PyTrends 和“非官方 Google Trends API”)——我的项目经理坚持我不使用不是由站点直接创建的模块(即:API 是可以接受的,但仅限于官方的 Google API)。只有 BeautifulSoup 被批准为插件(不要问为什么)。

下面是我尝试过的代码示例。我知道这是基本的,但是在我收到的第一个请求中:

HTTPError:HTTP 错误 429:未知”:请求过多。

对其他问题的一些回答提到了 Google Trends API - 这是真的吗?我在官方 API 上找不到任何文档。

这是另一篇文章,其中概述了我尝试过但对我不起作用的解决方案:

https://codereview.stackexchange.com/questions/208277/web-scraping-google-trends-in-python

url = 'https://trends.google.com/trends/explore?q=sports%20cars&geo=US'

html = urlopen(url).read()

soup = bs(html, 'html.parser')

divs = soup.find_all('div')

return divs
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup request web-scraping google-trends

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

不再支持带时间戳的整数和整数数组的加法/减法。而不是添加/减去 `n`,使用 `n * obj.freq`

我正在使用 pytrends 库来提取谷歌趋势,但出现以下错误:

不再支持带时间戳的整数和整数数组的加法/减法。而不是加/减n,使用n * obj.freq

timeframes = []
datelist = pd.date_range('2004-01-01', '2018-01-01', freq="AS")
date = datelist[0]
while date <= datelist[len(datelist)-1]:
    start_date = date.strftime("%Y-%m-%d")
    end_date = (date+4).strftime("%Y-%m-%d")
    timeframes.append(start_date+' '+end_date)
    date = date+3
Run Code Online (Sandbox Code Playgroud)

python pandas google-trends

6
推荐指数
2
解决办法
1万
查看次数

Google 趋势数据中使用的时区是什么?

我无法在文档中找到答案,并且由于最低级别的聚合是每日的,因此我无法从数据中找出答案。如果我使用 Google 趋势 API(或 trends.google.com),聚合中使用的基础数据的时区是什么?是 UTC、我的本地时区、进行搜索的国家/地区的时区吗?

google-docs-api google-trends

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

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

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)
Run Code Online (Sandbox Code Playgroud)

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 …
Run Code Online (Sandbox Code Playgroud)

python-3.x google-trends

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