将 html 个表抓取到 R 数据帧中
Scraping html tables into R data frames
我有问题。我必须从网站中提取信息:https://www.transfermarkt.co.uk/premier-league/startseite/wettbewerb/GB1 包括俱乐部的名称、他们网站的地址(transfermarkt 资料)和球队资料中的体育场名称。这是我第一次接触从网站上提取数据。任何帮助表示赞赏。一开始我写了这样的代码:
library(rvest)
theurl <- "https://www.transfermarkt.co.uk/premier-league/startseite/wettbewerb/GB1"
file<-read_html(theurl)
tables<-html_nodes(file, "table")
table1 <- html_table(tables[4], fill = TRUE)
正如@Henry Navarro 所指出的,不清楚您究竟需要哪些节点等。找到正确的节点是一项耗时的任务,因此您需要指定所需的节点。为此,您可以使用 Selectorgadget。
在下面的快速示例中,您可以如何生成团队网站列表,您必须使用 rvest 循环访问这些网站以提取信息。我认为到目前为止您为此目的而缺少的主要功能是 html_attr()
,例如,参见 answer。当然,你还得在这些网站上找到节点,提取体育场等信息
file %>%
html_nodes("table") %>%
{ .[4]} %>%
html_nodes("a") %>%
html_attr("href") %>%
{ .[grep("/startseite/verein",., fixed=T)]} %>%
unique() %>%
{ paste0("https://www.transfermarkt.co.uk", .) }
# [1] "https://www.transfermarkt.co.uk/fc-chelsea/startseite/verein/631/saison_id/2017"
# [2] "https://www.transfermarkt.co.uk/manchester-city/startseite/verein/281/saison_id/2017"
# [3] "https://www.transfermarkt.co.uk/manchester-united/startseite/verein/985/saison_id/2017"
# [4] "https://www.transfermarkt.co.uk/tottenham-hotspur/startseite/verein/148/saison_id/2017"
#...
我有问题。我必须从网站中提取信息:https://www.transfermarkt.co.uk/premier-league/startseite/wettbewerb/GB1 包括俱乐部的名称、他们网站的地址(transfermarkt 资料)和球队资料中的体育场名称。这是我第一次接触从网站上提取数据。任何帮助表示赞赏。一开始我写了这样的代码:
library(rvest)
theurl <- "https://www.transfermarkt.co.uk/premier-league/startseite/wettbewerb/GB1"
file<-read_html(theurl)
tables<-html_nodes(file, "table")
table1 <- html_table(tables[4], fill = TRUE)
正如@Henry Navarro 所指出的,不清楚您究竟需要哪些节点等。找到正确的节点是一项耗时的任务,因此您需要指定所需的节点。为此,您可以使用 Selectorgadget。
在下面的快速示例中,您可以如何生成团队网站列表,您必须使用 rvest 循环访问这些网站以提取信息。我认为到目前为止您为此目的而缺少的主要功能是 html_attr()
,例如,参见 answer。当然,你还得在这些网站上找到节点,提取体育场等信息
file %>%
html_nodes("table") %>%
{ .[4]} %>%
html_nodes("a") %>%
html_attr("href") %>%
{ .[grep("/startseite/verein",., fixed=T)]} %>%
unique() %>%
{ paste0("https://www.transfermarkt.co.uk", .) }
# [1] "https://www.transfermarkt.co.uk/fc-chelsea/startseite/verein/631/saison_id/2017"
# [2] "https://www.transfermarkt.co.uk/manchester-city/startseite/verein/281/saison_id/2017"
# [3] "https://www.transfermarkt.co.uk/manchester-united/startseite/verein/985/saison_id/2017"
# [4] "https://www.transfermarkt.co.uk/tottenham-hotspur/startseite/verein/148/saison_id/2017"
#...