【发布时间】:2021-07-22 11:05:44
【问题描述】:
这是我的脚本:
library(rvest)
library(dplyr)
link = "http://www.mmadecisions.com/decisions-by-judge/"
page = read_html(link)
name = page %>% html_nodes("#page1 a") %>% html_text()
name_links = page %>% html_nodes("#page1 a") %>%
html_attr("href") %>% paste("http://www.mmadecisions.com/", ., sep="")
get_decisions = function(name_link) {
judge_page = read_html(name_link)
date = judge_page %>% html_nodes(".list:nth-child(1)") %>% html_text()
event = judge_page %>% html_nodes(".list:nth-child(2) a") %>% html_text()
fight = judge_page %>% html_nodes(".list~ .list+ .list a") %>% html_text()
decisions = judge_page %>% html_nodes(".list:nth-child(4)") %>% html_text()
return(judge_page)
}
decision = sapply(name_links, FUN = get_decisions)
judges = data.frame(name, date, event, fight, decision, stringsAsFactors = FALSE)
我不断遇到的错误如下:
> library(rvest)
> library(dplyr)
>
>
> link = "http://www.mmadecisions.com/decisions-by-judge/"
> page = read_html(link)
>
> name = page %>% html_nodes("#page1 a") %>% html_text()
> name_links = page %>% html_nodes("#page1 a") %>%
+ html_attr("href") %>% paste("http://www.mmadecisions.com/", ., sep="")
>
> get_decisions = function(name_link) {
+ judge_page = read_html(name_link)
+ date = judge_page %>% html_nodes(".list:nth-child(1)") %>% html_text()
+ event = judge_page %>% html_nodes(".list:nth-child(2) a") %>% html_text()
+ fight = judge_page %>% html_nodes(".list~ .list+ .list a") %>% html_text()
+ decisions = judge_page %>% html_nodes(".list:nth-child(4)") %>% html_text()
+ return(judge_page)
+ }
>
> decisions = sapply(name_links, FUN = get_decisions)
Error in open.connection(x, "rb") : HTTP error 400.
Called from: open.connection(x, "rb")
Browse[1]>
> judges = data.frame(name, date, event, fight, score, stringsAsFactors = FALSE)
Error in data.frame(name, date, event, fight, score, stringsAsFactors = FALSE) :
object 'score' not found
我的目标是从父页面导航到多个子页面,抓取四列数据“判断决策”,然后打印成列。我感谢任何人对此提出的任何见解。
【问题讨论】:
标签: html r web-scraping rvest