有多个问题的网络抓取循环

时间:2021-04-04 01:13:27

标签: r web-scraping rvest

我的 R 代码在从网站下载 Box 乐谱时遇到问题。

for (i in Sites) {
try({log("a")}, silent=TRUE)
webpage_url <- i
webpage <- xml2::read_html(webpage_url)

table <- rvest::html_table(webpage, fill=TRUE)[[1]]
  
}
#Here's an example url
"https://www.baseball-almanac.com/box-scores/boxscore.php?boxid=202007310COL"

sites 数据框包含我需要刮取的 URL。我试图制作一个循环来替换更改 URL 的最后 8 位左右的数字,但我也无法使其正常工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以将每个 url 的数据存储在一个列表中。

extract_table <- function(webpage_url) {
  webpage <- xml2::read_html(webpage_url)  
  rvest::html_table(webpage, fill=TRUE)[[1]] 
}

list_data <- lapply(Sites, extract_table)

list_data 有一个数据框列表,如果您想将它们组合成一个数据框,请使用

data <- do.call(rbind, list_data)