gpt4 book ai didi

r - 从维基百科表格中抓取网址

转载 作者:行者123 更新时间:2023-12-01 03:31:38 29 4
gpt4 key购买 nike

我正在尝试抓取页面 https://en.wikipedia.org/wiki/UEFA_Euro_2012_squads并且可以使用 rvest 去除文本数据

library(plyr)
library(XML)
library(rvest)
library(dplyr)
library(magrittr)
library(data.table)

for(i in 1:16)
{
float <- paste("squad", i, sep ="")
print(float)
html = read_html("https://en.wikipedia.org/wiki/UEFA_Euro_2012_squads")
assign(float, html_table(html_nodes(html, "table")[[i]]))
}
但还想为此添加一个额外的列,其中包含俱乐部每个表上的 URL。例如对于小队 1(页面上的波兰小队,截断以仅显示前 5 名球员)
     0#0 Pos.              Player                    Date of birth (age) Caps Goals                Club
1 1 1GK Wojciech Szczęsny (1990-04-18)18 April 1990 (aged 22) 11 0 Arsenal
2 2 2DF Sebastian Boenisch (1987-02-01)1 February 1987 (aged 25) 9 0 Werder Bremen
3 3 2DF Grzegorz Wojtkowiak (1984-01-26)26 January 1984 (aged 28) 19 0 Lech Poznań
4 4 2DF Marcin Kamiński (1992-01-15)15 January 1992 (aged 20) 3 0 Lech Poznań
5 5 3MF Dariusz Dudka (1983-12-09)9 December 1983 (aged 28) 65 2 Auxerre
6 6 3MF Adam Matuszczyk (1989-02-14)14 February 1989 (aged 23) 20 1 Fortuna Düsseldorf
我想要在“club”之后的“clubURL”列,以显示该俱乐部的维基百科网址。例如,第一个球员为阿森纳效力,因此要获取阿森纳 table 上的链接并创建:
0#0 Pos.             Player                 Date of birth (age) Caps Goals    Club
1 1 1GK Wojciech Szczęsny (1990-04-18)18 April 1990 (aged 22) 11 0 Arsenal
clubURL
1 https://en.wikipedia.org/wiki/Arsenal_F.C.
等等等等。我找到了 rvest table scraping including links但无法使该示例起作用,也无法用于我想做的事情。抱歉,如果在其他地方问过,
谢谢,

最佳答案

我使用页面上的第一个表格做了一个例子。您可以根据需要扩展它。

首先,获取第一个表并使用 html_table 保存它.然后我创建了一个辅助函数来从表中提取链接,给出链接文本。然后我用了 sapply填充数据框中的新列。

library("rvest")
url <- "https://en.wikipedia.org/wiki/UEFA_Euro_2012_squads"
mytable <- read_html(url) %>% html_nodes("table") %>% .[[1]]
df <- mytable %>% html_table()

get_link <- function(html_table, team){
html_table %>%
html_nodes(xpath=paste0("//a[text()='", team, "']")) %>%
.[[1]] %>%
html_attr("href")
}

df$club_link <- sapply(df$Club, function(x)get_link(mytable, x))
> head(df)
0#0 Pos. Player
1 1 1GK Wojciech Szczęsny
2 2 2DF Sebastian Boenisch
3 3 2DF Grzegorz Wojtkowiak
4 4 2DF Marcin Kamiński
5 5 3MF Dariusz Dudka
6 6 3MF Adam Matuszczyk
Date of birth (age) Caps Goals
1 (1990-04-18)18 April 1990 (aged 22) 11 0
2 (1987-02-01)1 February 1987 (aged 25) 9 0
3 (1984-01-26)26 January 1984 (aged 28) 19 0
4 (1992-01-15)15 January 1992 (aged 20) 3 0
5 (1983-12-09)9 December 1983 (aged 28) 65 2
6 (1989-02-14)14 February 1989 (aged 23) 20 1
Club club_link
1 Arsenal /wiki/Arsenal_F.C.
2 Werder Bremen /wiki/SV_Werder_Bremen
3 Lech Poznań /wiki/Lech_Pozna%C5%84
4 Lech Poznań /wiki/Lech_Pozna%C5%84
5 Auxerre /wiki/AJ_Auxerre
6 Fortuna Düsseldorf /wiki/Fortuna_D%C3%BCsseldorf

关于r - 从维基百科表格中抓取网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187976/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com