1

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

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

这是我正在使用的代码:

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)) 

我不断收到错误:

get_widget 中的错误(comparison_item,category,gprop,hl,cookie_url,:widget$status_code == 200 不是 TRUE

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

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

4

2 回答 2

1

我通过从以下位置下载 gtrendsR 解决了:

install.packages("remotes")
remotes::install_github("PMassicotte/gtrendsR")

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

并使用以下

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
  }
} 

于 2021-04-23T00:29:29.100 回答
1

如果您只是将它们放入谷歌搜索中,服务器返回的错误代码widget$status_code == 200通常可以很好地描述问题。在您的情况下,短时间内请求太多。对于您调用服务器时间i的每一个。在短时间内有很多请求,您将被阻止。在您的通话之间设置某种类型的超时,或者查看 hacky刮板方法,如旋转标题/cookie 等。keywordlength(Country)

于 2020-05-14T04:23:57.827 回答