Как очистить старые html вложенными таблицами в R? - PullRequest
2 голосов
/ 20 февраля 2020

Я изо всех сил пытаюсь очистить старый файл html (на самом деле сотни), в котором нет css, поэтому выбор css не работает.

Пример страницы: http://home.business.utah.edu/u0982704/ipeds/gr2002.html

Мне нужно получить всю информацию, которая находится в ограниченных таблицах, хотя мне также понадобятся некоторые другие элементы, такие как код переменной после каждого горизонтального правила (ie "CHRTSTAT-1919 - Статус градации в когорте "), чтобы прикрепить это к информации в граничной таблице под ней.

enter image description here

Я бы хотел закончить примерно так:

enter image description here

Файл содержит весь текст в таблице, а затем содержит таблицы в таблицах. Я не уверен, как использовать html_nodes() и html_table(), чтобы получить четкий результат. Использование html_table дает мне огромный список списков списков, и я не вижу очевидного способа, как я могу сгладить его полезным способом.

Одна вещь, которую я пробовал: использовать html_text(), а затем read_table() дает мне большую часть пути, но реальные граничные таблицы на странице не анализируются из-за того, что строки не возвращаются - это, похоже, самые глубокие вложенные таблицы. Так что, если бы я мог определить их и проанализируйте их, используя другой метод, который может работать.

В настоящее время используется rvest, но открыт для других пакетов.

suppressPackageStartupMessages(require(tidyverse))
suppressPackageStartupMessages(require(rvest))

xh <- read_html("http://home.business.utah.edu/u0982704/ipeds/gr2002.html")

htable <- xh %>% 
  html_table(fill = T)

htext <- xh %>% 
  html_nodes("table") %>% 
  html_text(xh)

text_table <- read_table(htext) #This gets me most of the way there, but the tables from the page (ie the "Value Label", "Code Value", "Frequency", "Percentage" gets smashed because there are no line returns since it is seperate table rows)

Создано в 2020-02-19 представьте пакет (v0.3.0)

РЕДАКТИРОВАТЬ: я только что заметил, что мой метод read_table, кажется, не получает все данные из таблицы:

text_table %>% slice(15) %>% pull только имеет часть таблицы:

[1] "4-year institutions total12,0104.74%4-year institutions, Adjusted cohort (revised cohort minus exclusions)22,0104.74%4-year institutions, Completers within 150% of normal time31,9804.67%4-year institutions, Tranfer-out students47671.81%4-year institutions, Still enrolled in long programs5950.22%Bachelor's or equiv subcohort (4-yr institution)61,8464.35%Bachelor's or equiv subcohort (4-yr institution) adjusted cohort (revised cohort minus exclusions)81,8464.35%Bachelor's or equiv subcohort (4-yr institution) Completers within 150% of normal time total91,8204.29%Bachelor's or equiv subcohort (4-yr institution) Completers of programs of < 2 yrs (150% of normal time)10920.22%Bachelor's or equiv subcohort (4-yr institution) Completers of programs of 2 but <4 yrs (150% of normal time)114020.95%Bachelor's or equiv"

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