如何从网站上抓取信息

时间:2021-03-25 08:21:39

标签: r web-scraping rvest

我正在尝试从 PHE 网站 (https://coronavirus.data.gov.uk/details/deaths) 中抓取数据。我是在按国家报告的日期(第二次互动)进行阳性测试后 28 天内的死亡人数之后。我尝试使用选择器小工具来提取数据并将其放入表格格式,但它返回零。我过去曾这样做过并且效果很好,所以我不确定为什么这次不起作用。怀疑可能是因为它是一种交互式仪表板。任何帮助将不胜感激。

library(rvest)

url <- "https://coronavirus.data.gov.uk/details/deaths"
webpage <‐ read_html(url)

data <- webpage %>%
  html_nodes(".dgxcKs , .govuk-table__cell--date , .govuk-table__cell--numeric , .cQSaWH") %>%
  html_table()

print(data)

1 个答案:

答案 0 :(得分:1)

该页面上的所有数据都以 json 格式提供。需要在浏览器的网络标签中找到相关的json。

data <- jsonlite::fromJSON('https://coronavirus.data.gov.uk/api/v1/data?filters=areaType=overview&structure=%7B%22date%22:%22date%22,%22areaName%22:%22areaName%22,%22newDeaths28DaysByPublishDate%22:%22newDeaths28DaysByPublishDate%22%7D')
head(data$data)

#        date       areaName newDeaths28DaysByPublishDate
#1 2021-03-24 United Kingdom                           98
#2 2021-03-23 United Kingdom                          112
#3 2021-03-22 United Kingdom                           17
#4 2021-03-21 United Kingdom                           33
#5 2021-03-20 United Kingdom                           96
#6 2021-03-19 United Kingdom                          101