首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在google趋势中为多个国家提取多个关键字(在循环中)

在google趋势中为多个国家提取多个关键字(在循环中)
EN

Stack Overflow用户
提问于 2020-05-14 10:54:11
回答 2查看 570关注 0票数 1

我正在使用gtrendsR包来提取谷歌趋势数据。我知道这个包一次最多有5个“关键字”的限制;因此我使用了一个循环来一次提取>5个“关键字”。

现在我想为多个“国家”重复这个练习,并希望结果显示“关键字”和“国家”的每一个组合的所有可能的谷歌趋势输出。

这是我使用的代码:

代码语言:javascript
代码运行次数:0
运行
复制
Country = readLines("country_list.csv")
Keyword = readLines("keyword_list.csv")
results <- list() 

for (i in Keyword) 
  {
  for (j in Country) {
    time=("today 3-m")
    channel='web'
    trends = gtrends(keyword=i, gprop =channel,geo=j, time = time)
    results [[j]] <- trends$interest_over_time
  }
} 

Out <- as.data.frame(do.call("rbind", results)) 

我一直收到错误:

类别错误(comparison_item,get_widget,gprop,hl,cookie_url,:widget$status_code == 200不是真

我在列表中有大约60个“国家”和300个“关键字”。这是不是因为无法从谷歌趋势中提取过多的数据?或者一些基本的错误

顺便说一句,我是R的基本用户;非常感谢您的帮助

EN

回答 2

Stack Overflow用户

发布于 2020-05-14 12:23:58

如果你只是在谷歌上搜索,服务器返回的错误代码widget$status_code == 200通常可以很好地描述问题。在你的例子中,短时间内有太多的请求。对于keyword中的每个i,您都会调用服务器length(Country)次。短时间内有很多请求&你会被阻塞的。或者在调用之间设置某种类型的超时,或者研究一些老套的擦除器方法,比如轮换头部/cookie等。

票数 1
EN

Stack Overflow用户

发布于 2021-04-23 08:29:29

我通过从以下位置下载gtrendsR解决了这个问题:

代码语言:javascript
代码运行次数:0
运行
复制
install.packages("remotes")
remotes::install_github("PMassicotte/gtrendsR")

(参见https://github.com/PMassicotte/gtrendsR/issues/166)

并使用以下代码

代码语言:javascript
代码运行次数:0
运行
复制
Country = readLines("states.csv")
Keyword = readLines("celebs.csv")


for (i in Keyword) 
{
  for (j in Country) {
    time=("2018-01-01 2018-06-30")
    channel='web'
    trends = gtrends(keyword=i, gprop =channel,geo=j, time = time, onlyInterest = TRUE,low_search_volume = FALSE)
    Sys.sleep(5)
    results [[j]][[i]] <- trends$interest_over_time
  }
} 

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61788486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档