Web Scraping с помощью rvest и xml2 - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь очистить дату и тип политики для объявлений, связанных с COVID, с этого URL: https://covid19.healthdata.org/united-states-of-america/alabama

Первая дата, которую я пытаюсь получить, - "Апрель" 4-е, 2020 г. - дата заказа на пребывание в Алабаме.

Насколько я могу судить (поскольку я новичок в этом), он имеет xpath:

 "//[@id="root"]/div/main/div[3]/div[1]/div[2]/div[1]/div[1]/div/div/span"

У меня есть использовал следующие строки, чтобы попытаться получить его -

data <- read_html(url) %>% 
  html_nodes("span.ant-statistic-content-value")

data <- read_html(url) %>%
  html_nodes(xpath = "//*[@id='root']/div/main/div[3]/div[1]/div[2]/div[1]/div[1]/div/div/span")

Ни один из них не может получить информацию, которую я ищу. Любая помощь будет оценена!

1 Ответ

0 голосов
/ 15 апреля 2020

Данные для этой страницы хранятся в серии файлов JSON. Если вы используете инструменты разработчика из своего браузера и ищите файлы Networks типа XHR; вы должны получить список, похожий на этот (браузер Safari ниже): enter image description here

Щелкните правой кнопкой мыши имена, чтобы скопировать ссылку URL.

Этот скрипт должен помочь вам начать :

library(jsonlite)
#obtain the list of locations
locations<-fromJSON("https://covid19.healthdata.org/api/metadata/location?v=7", flatten = TRUE)

head(locations[, 1:9])
#get list if US locations
US <- locations$children[locations$location_name =="United States of America"]
head(US[[1]])

#Get data frame from interventions
#Create link with desired location_id (569 is Virginia)
#paste0("https://covid19.healthdata.org/api/data/intervention?location=", "569")
Interventions <- fromJSON("https://covid19.healthdata.org/api/data/intervention?location=569", flatten = TRUE)

Interventions
# date_reported covid_intervention_id location_id covid_intervention_measure_id   covid_intervention_measure_name
# 1 2020-03-30 00:00:00                   110         569                             1 People instructed to stay at home
# 2 2020-03-16 00:00:00                   258         569                             2     Educational facilities closed
# 3 2020-04-19 00:00:00                   437         569                             7          Assumed_implemented_date

#Repeat for other links of interest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...