Создание последовательности для очистки текста от URL с использованием R - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь создать какой-то код, чтобы очистить имена чиновников, которые судили каждую игру НБА в течение сезона. Все URL, которые я пытаюсь найти, имеют одинаковый формат, поэтому мне нужен код, который идентифицирует формат и reads официальные имена. Большое спасибо за вашу помощь!

Вы увидите, что:

  1. Первая версия # extract officials ниже, читает заголовки inactive, officials, attendance и т. Д.

  2. Вторая версия # extract officials читает текст после каждого из вышеупомянутых заголовков.

  3. Iнужен код, который распознает этот формат / шаблон по нескольким URL-адресам и каждый раз читает имена официальных лиц.

Scott Foster, Ron Garretson, Dedric Taylor в этом конкретном примере URL-адреса:

# get webpage
url = paste0("https://www.basketball-reference.com/boxscores/", "201810160BOS", ".html")
webpage = read_html(url)

# extract officials
data = webpage %>% 
    html_nodes(paste("body > div > div > div > div > strong")) %>%
    html_text()

# extract officials
data = webpage %>% 
    html_nodes(paste("body > div > div > div > div > a")) %>%
    html_text()

1 Ответ

0 голосов
/ 21 октября 2019

Я сам не очень разбираюсь в R, и я уверен, что есть лучший способ, но, возможно, это может быть началом:

library(rvest)


url = paste0("https://www.basketball-reference.com/boxscores/", "201810160BOS", ".html")
webpage = read_html(url)

data = webpage %>% html_nodes(paste("body > div > div > div > div > a"))


urls <- data %>% html_attr("href")
text <- data %>% html_text()

df <- data.frame(urls, text, stringsAsFactors=FALSE)

refs <- df[stringr::str_detect(urls, "referees"),"text"]

Это результат, который я получаю: из приведенного вышекод:

refs [1] "Скотт Фостер" "Рон Гарретсон" "Дедрик Тейлор"

...