Я сомневаюсь, как включить столбец в "my_data" (my_data$sector), показывающий, что url_list[[j]] или url_info было использовано для этой строки. Каждый URL принесет мне таблицу (35 х 100), и мне нужно показать, какой элемент был источником, когда собирал все вместе.
my_data
my_data$sector
url_list[[j]]
url_info
url_list <- vector() url_info <- vector() # then, i feed it. total_pages <- 1:5 #for my use, i need almost 100 pages for (i in total_pages) { url_list [i] <- paste('http://www.mylink/result.php?sector=',i,sep = "") url_info [i] <- paste('sector_',i,sep = "") } url_list >> [1] "http://www.mylink/result.php?sector=1" "http://www.mylink/result.php?sector=2" [3] "http://www.mylink/result.php?sector=3" "http://www.mylink/result.php?sector=4" [5] "http://www.mylink/result.php?sector=5" url_info >> [1] "sector_1" "sector_2" "sector_3" "sector_4" "sector_5" #scraping my_data <- list() for (j in seq_along(url_list)) { my_data[[j]] <- url_list[[j]] %>% read_html() %>% html_node("table") %>% html_table() } final_data <- cbind(do.call(rbind, my_data))
У меня нет списка URL с таблицами, которые вы можете привязать, но попробуйте что-нибудь ниже, он добавит URL к последнему столбцу.
Вы должны попробовать это на реальных данных для rbind:
my_data <- list() url_list=c( "http://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_population", "https://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_historical_population", "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population") for (j in seq_along(url_list)) { my_data[[j]] <- url_list[[j]] %>% read_html() %>% html_node("table") %>% html_table() %>% mutate(url=url_list[j]) }
Примерно так должно работать
library(tidyverse) library(xml2) pipe_function <- . %>% read_html() %>% html_node("table") %>% html_table() tibble(url_info,url_list) %>% mutate(table = url_list %>% map_dfr(pipe_function))