Получить JSON запрос по ссылке в R - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь научиться собирать данные из Интернета в R. Есть веб-сайт Министерства здравоохранения Бразилии, который публикует данные о заболевании здесь, в Бразилии, это общедоступный портал c.

COVIDBRASIL

Итак, на этой странице меня интересует график, который отображает ежедневные отчеты о случаях заболевания здесь, в Бразилии. Используя инспектор в Google Chrome, я могу получить доступ к файлу JSON, содержащему данные для этого графика, мой вопрос заключается в том, как я могу автоматически получить этот файл с помощью R. Когда я пытаюсь открыть JSON в новой вкладке вне На вкладке «Ответ» инспектора я получаю сообщение «Несанкционированный». Есть ли способ сделать это или каждый раз, когда мне придется вручную скопировать JSON из инспектора и обновить мой R-скрипт?

enter image description here

В моем случае меня интересует ответ "PortalDias". Спасибо.

URL ПОРТАЛ ДИАС

1 Ответ

1 голос
/ 10 апреля 2020

Вам нужно установить несколько заголовков, чтобы предотвратить это сообщение «Несанкционированный». Я скопировал их из раздела «Заголовки» в окне «Сеть» браузера.

library(curl)
library(jsonlite)

url <- "https://xx9p7hp1p7.execute-api.us-east-1.amazonaws.com/prod/PortalDias"

h <- new_handle()
handle_setheaders(h, Host = "xx9p7hp1p7.execute-api.us-east-1.amazonaws.com",
                  `Accept-Encoding` = "gzip, deflate, br",
                  `X-Parse-Application-Id` = "unAFkcaNDeXajurGB7LChj8SgQYS2ptm")
fromJSON(rawToChar(curl_fetch_memory(url, handle = h)$content))

# $results
#      objectId label                createdAt                updatedAt  qtd_confirmado qtd_obito
# 1  6vr9rUPbd4 26/02 2020-03-25T16:25:53.970Z 2020-03-25T22:25:42.967Z               1       123
# 2  FUNHS00sng 27/02 2020-03-25T16:27:34.040Z 2020-03-25T22:25:55.169Z               0        34
# 3  t4qW51clpj 28/02 2020-03-25T19:08:36.689Z 2020-03-25T22:26:02.427Z               0        35
# ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...