Как извлечь данные бэк-энда с веб-сайта? - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь извлечь внутренние данные графика по следующей ссылке - https://coronavirus.jhu.edu/map.html.

В правом углу вы увидите желтый пузырьковый график, который отображает общее количество число случаев заражения коронным вирусом по странам. Мне нужно извлечь данные из диаграммы. Я провел онлайн-исследование и наткнулся на этот сайт - https://onlinejournalismblog.com/2017/05/10/how-to-find-data-behind-chart-map-using-inspector/. Это было очень полезно для меня, и я мог получить веб-ссылку, которая, когда я включаю свой браузер, я вижу внутренние данные в формате JSON.

Например: https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Nc2JKvYFoAEOFCG5JSI6/FeatureServer/4/query?f=json&where= (Подтверждено% 3C% 3E0)% 20AND% 20 (Country_Region% 3D% 27Finland% 27) & returnGeometry = false &atialRel = esriSpatialRelIntersects & outFields = OBJECTID% 2CCПодтверждено:% 2CLast_Update & orderByFields = Last_Update = 20% и 0 = = 0% = выручка = 10% и доход = 10% за вычетом - 10% прибыли и полученного дохода: 10% и доход = 1000% от полученного дохода - 10% от полученного дохода - 10% от полученного дохода - 10% от полученного дохода - 10% от полученного дохода - 10% от полученного и полученного результата - 20% & вы 1027 * данные для Финляндии.

Я пытался извлечь данные двумя способами, например -

url = "..above link.."
x <- fromJSON(url)
x <- GET(url)

Каждый раз я получал сообщение об ошибке.

Мне нужно извлечь обратно конечные данные этой таблицы для всех стран.

Спасибо за вашу помощь заранее.

#
# Error I get from 
print(x) 

Response [https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Nc2JKvYFoAEOFCG5JSI6/FeatureServer/4/query?f=json&where=(Confirmed%3C%3E0)%20AND%20(Country_Region%3D%27Senegal%27)&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outFields=OBJECTID%2CConfirmed%2CLast_Update&orderByFields=Last_Update%20asc&outSR=102100&resultOffset=0&resultRecordCount=1000&cacheHint=true]
  Date: 2020-03-27 14:15
  Status: 403
  Content-Type: text/html
  Size: 919 B
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a config...
<BR clear="all">
#
#str(x) gives me
str(x)

List of 10
 $ url        : chr "https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Nc2JKvYFoAEOFCG5JSI6/FeatureServer/4/query?f"| __truncated__
 $ status_code: int 403
 $ headers    :List of 9
  ..$ server        : chr "CloudFront"
  ..$ date          : chr "Fri, 27 Mar 2020 14:15:15 GMT"
  ..$ content-type  : chr "text/html"
  ..$ content-length: chr "919"
  ..$ connection    : chr "keep-alive"
  ..$ x-cache       : chr "Error from cloudfront"
  ..$ via           : chr "1.1 7ddf939a79757069f5b9d04b0ce928cf.cloudfront.net (CloudFront)"
  ..$ x-amz-cf-pop  : chr "BLR50-C1"
  ..$ x-amz-cf-id   : chr "obYT8TG43RpvXHq8VoWYPnSYLIdSwQgf4tFkP1oshW9xtmEkSj5AJA=="
  ..- attr(*, "class")= chr [1:2] "insensitive" "list"
 $ all_headers:List of 1
  ..$ :List of 3
  .. ..$ status : int 403
  .. ..$ version: chr "HTTP/1.1"
  .. ..$ headers:List of 9
  .. .. ..$ server        : chr "CloudFront"
  .. .. ..$ date          : chr "Fri, 27 Mar 2020 14:15:15 GMT"
  .. .. ..$ content-type  : chr "text/html"
  .. .. ..$ content-length: chr "919"
  .. .. ..$ connection    : chr "keep-alive"
  .. .. ..$ x-cache       : chr "Error from cloudfront"
  .. .. ..$ via           : chr "1.1 7ddf939a79757069f5b9d04b0ce928cf.cloudfront.net (CloudFront)"
  .. .. ..$ x-amz-cf-pop  : chr "BLR50-C1"
  .. .. ..$ x-amz-cf-id   : chr "obYT8TG43RpvXHq8VoWYPnSYLIdSwQgf4tFkP1oshW9xtmEkSj5AJA=="
  .. .. ..- attr(*, "class")= chr [1:2] "insensitive" "list"
 $ cookies    :'data.frame':    0 obs. of  7 variables:
  ..$ domain    : logi(0) 
  ..$ flag      : logi(0) 
  ..$ path      : logi(0) 
  ..$ secure    : logi(0) 
  ..$ expiration: 'POSIXct' num(0) 
  ..$ name      : logi(0) 
  ..$ value     : logi(0) 
 $ content    : raw [1:919] 3c 21 44 4f ...
 $ date       : POSIXct[1:1], format: "2020-03-27 14:15:15"
 $ times      : Named num [1:6] 0 0.000159 0.000164 0.000517 0.004218 ...
  ..- attr(*, "names")= chr [1:6] "redirect" "namelookup" "connect" "pretransfer" ...
 $ request    :List of 7
  ..$ method    : chr "GET"
  ..$ url       : chr "https://services9.arcgis.com/N9p5hsImWXAccRNI/arcgis/rest/services/Nc2JKvYFoAEOFCG5JSI6/FeatureServer/4/query?f"| __truncated__
  ..$ headers   : Named chr "application/json, text/xml, application/xml, */*"
  .. ..- attr(*, "names")= chr "Accept"
  ..$ fields    : NULL
  ..$ options   :List of 2
  .. ..$ useragent: chr "libcurl/7.64.1 r-curl/4.3 httr/1.4.1"
  .. ..$ httpget  : logi TRUE
  ..$ auth_token: NULL
  ..$ output    : list()
  .. ..- attr(*, "class")= chr [1:2] "write_memory" "write_function"
  ..- attr(*, "class")= chr "request"
 $ handle     :Class 'curl_handle' <externalptr> 
 - attr(*, "class")= chr "response"
...