我用来抓取数据的网站已经更改,我在将数据拉入表格格式时遇到了问题。我使用了下面两种不同类型的代码试图获取表格,但它返回的是空白而不是表格。
我是一个刮擦方面的新手,希望能得到Maven组的帮助。我应该在rvest中寻找其他解决方案,还是尝试学习像rSelenium这样的程序?
https://www.pgatour.com/stats/detail/02675
抓取多个链接
library("dplyr")
library("purr")
library("rvest")
df23 <- expand.grid(
stat_id = c("02568","02674", "02567", "02564", "101")
) %>%
mutate(
links = paste0(
'https://www.pgatour.com/stats/detail/',
stat_id
)
) %>%
as_tibble()
#replaced tournament_id with stat_id
get_info <- function(link, stat_id){
data <- link %>%
read_html() %>%
html_table() %>%
.[[2]]
}
test_main_stats <- df23 %>%
mutate(tables = map2(links, stat_id, possibly(get_info, otherwise = tibble())))
test_main_stats <- test_main_stats %>%
unnest(everything())
替代代码
url <- read_html("https://www.pgatour.com/stats/detail/02568")
test1 <- url %>%
html_nodes(".css-8atqhb") %>%
html_table
1条答案
按热度按时间hc8w905p1#
这个页面使用javascript来创建表,所以rvest不能直接工作,但是如果查看页面的源代码,所有的数据都以JSON格式存储在一个““节点中。
这段代码找到了那个节点,并将其从JSON转换为一个列表,变量是主表,但JSON数据结构中包含了大量其他信息。