Разделите массивную строку на несколько строк, чтобы создать фрейм данных из HTML?

#html #r #dataframe

Вопрос:

В настоящее время я работаю над чтением HTML-файла этой веб-страницы в R и обработкой его для извлечения полезных данных, которые создают новый фрейм данных.

Визуальный осмотр текста веб-страницы показывает, что все строки, содержащие значения данных, начинаются с » < td>». Итак, вот мой код до сих пор:

 thepage<-readLines('https://www.worldometers.info/world-population/population-by-country/')

dataline <- grep('<td>', thepage)
dataline
 

Это возвращает:

 11
 

Что говорит мне о том, что все данные находятся в строке 11. Поэтому я сделал это:

 data <- thepage[11]
datalines <- grep('<td>', data)
datalines
 

Это возвращает:

 1
 

Что совсем не полезно, так как «данные» по-прежнему представляют собой одну массивную строку. Как мне разделить эти массивные строки на несколько строк? Мой предпочтительный фрейм данных будет выглядеть примерно так:

введите описание изображения здесь

введите описание изображения здесь

ТИА.

Ответ №1:

Как насчет следующего?

 library(tidyverse)
library(rvest)
    
url <- 'https://www.worldometers.info/world-population/population-by-country/'

pg <- xml2::read_html(url) %>%
  rvest::html_table() %>%
  .[[1]]