#r #googleway
#r #googleway
Вопрос:
Мне нужно получить все данные Google Maps по каждому продуктовому магазину / рынку / мини-маркету в указанном районе.
Используя googleway
пакет, я могу получить доступ к API и получить до 60 результатов (20 одновременно). Однако, что, если есть более 60 мест, которые соответствуют моему запросу? Другими словами, как я могу быть уверен, что я ничего не пропустил?
К сожалению, вы не можете повторить это без ключа API, извините за это.
suppressPackageStartupMessages(require(tidyverse))
suppressPackageStartupMessages(require(googleway))
set_key("your key here")
#Center of Guilford County, NC:
guilford <- c(36.086046, -79.796661)
reslst <- lst()
last_token <- NULL
for(i in 1:3) {
res <- google_places(location = guilford,
radius = 30000,
place_type = "grocery_or_supermarket",
page_token = last_token)
results <- res$results
Sys.sleep(time = 3)
last_token <- res$next_page_token
reslst[[i]] <- results %>% select(id, name, place_id, price_level, rating, user_ratings_total, types) %>% as_tibble() %>% add_column(iter = i)
}
all_results <- bind_rows(reslst)
Комментарии:
1. Ошибка не превышает 60, это просто ограничение, установленное Google API. Если вы продолжите, вы просто получите повторяющиеся результаты.
2. Возможно, вы можете проверять
nrow(results)
на каждом шаге с помощьюwhile
цикла и расширятьi
, пока не останется еще несколько строк. Я не могу это проверить, поскольку у меня нет учетной записи для выставления счетов3. @akrun Я пытался это сделать — после 3 страниц (60 результатов) Google продолжает выдавать полный список результатов, но они являются дубликатами предыдущих результатов.