【发布时间】:2019-05-09 18:42:34
【问题描述】:
我已经查看了与此类似主题相关的 SO 上类似问题的几个答案,但似乎都不适合我。
(loop across multiple urls in r with rvest)
(Harvest (rvest) multiple HTML pages from a list of urls)
我有一个 URL 列表,我希望从每个 URL 中获取表格并将其附加到主数据框。
## get all urls into one list
page<- (0:2)
urls <- list()
for (i in 1:length(page)) {
url<- paste0("https://www.mlssoccer.com/stats/season?page=",page[i])
urls[[i]] <- url
}
### loop over the urls and get the table from each page
table<- data.frame()
for (j in urls) {
tbl<- urls[j] %>%
read_html() %>%
html_node("table") %>%
html_table()
table[[j]] <- tbl
}
第一部分按预期工作并获取我要抓取的网址列表。我收到以下错误:
Error in UseMethod("read_xml") :
no applicable method for 'read_xml' applied to an object of class "list"
有关如何纠正此错误并将 3 个表循环到单个 DF 中的任何建议?我很感激任何提示或指示。
【问题讨论】:
-
您是否尝试在 for 循环外分配
j <- 1,然后在table[[j]] <- tbl参数之后在 for 循环内分配j <- j+1。
标签: r for-loop web-scraping rvest