Использование Webscrape для l oop во фрейме данных в R - PullRequest
0 голосов
/ 05 марта 2020

Я чувствую, что близок к этому, но не могу найти правильное решение. Я хочу скрести таблицы с нескольких страниц и сохранить результаты в один окончательный кадр данных. Все таблицы будут иметь одинаковую структуру. Мой код ниже с образцом l oop (реально есть потенциально 1000 страниц). Когда я запускаю код на одной странице, я могу получить результат, но не могу понять, как l oop или как сохранить результаты l oop в кадре данных. Посмотрите, что я делаю ниже, любая помощь приветствуется !!

library(textreadr)
library(dplyr)
library(rvest)

for (event in (803:806)){
  url<-paste0('http://profightdb.com/cards/wwf/monday-night-raw-', event,'.html')
  webpage<-read_html(url)
  tbls_ls<-webpage %>%
    html_nodes('table') %>%
    .[[2]] %>%
    html_table(fill=TRUE)
}

1 Ответ

1 голос
/ 05 марта 2020

Возможно сохранить результаты в виде списка фреймов данных.

library(textreadr)
library(dplyr)
library(rvest)

tbls_ls <- vector(4, mode="list") # Initialize the list
i <- 1 # Initialize the index

for (event in (803:806)){
  url <- paste0('http://profightdb.com/cards/wwf/monday-night-raw-', event,'.html')
  webpage <- read_html(url)

  tbls_ls[[i]] <- webpage %>%
    html_nodes('table') %>%
    .[[2]] %>%
    html_table(fill=TRUE)

  i <- i+1  # Update the index
}    

class(tbls_ls) # "list"
names(tlbs_ls) <- 803:806  # Name the elements
tbls_ls[1]
$`803`
  no.                        match      match                           match duration
1   1                     Yokozuna def. (pin)                     Koko B Ware    03:45
2   2 Rick Steiner & Scott Steiner def. (pin) Executioner #1 & Executioner #2    03:00
3   3           Shawn Michaels (c) def. (pin)                        Max Moon    10:30
4   4               The Undertaker def. (pin)                  Damien Demento    02:26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...