rvest从表中的指定列中刮取

时间:2016-07-11 15:18:26

标签: r screen-scraping rvest

我正在试图抓住足球运动员在比赛名单中所扮演的俱乐部(例如在http://www.transfermarkt.com/alan-shearer/leistungsdatendetails/spieler/3110/wettbewerb/GB1为Alan Shearer,特别是在表#3中,一个名为“超级联赛”的hughe)

令人恼火的是,桌子“For”列中的俱乐部被编码为具有“tiny_wappen”类的图片。我可以抓取这些并将它们放入带有

的data.frame中
link <- "http://www.transfermarkt.com/alan-shearer/leistungsdatendetails/spieler/3110/wettbewerb/GB1"
    UrlPage <- read_html (link)
    Node <- UrlPage %>% html_nodes("table") %>% `[`(3) %>% html_nodes("img.tiny_wappen")
    ClubFor <- data.frame(html_attr(Node, "alt"))

但是相邻专栏(相对)中的一些(大约每五个一个)俱乐部也在这个图像类中,所以我得到一个点缀着俱乐部的列表。有没有办法指定一个表的列来刮掉(或其他一些更聪明的方法来实现我想要的)?

一如既往地先发制人,谢谢,

1 个答案:

答案 0 :(得分:2)

您可以使用xpaths抓取每一行的第四个单元格

Node <- UrlPage %>%
  html_nodes(xpath = "//*[@id='main']/div[9]/div[1]/div[2]/div[3]/table/tbody/tr/td[4]/a/img") 

ClubFor = Node %>%
  html_attr("alt") %>%
  data.frame()