使用SelectorGadget和RVest拉动底层的html,而不是我想要捕获的文本

时间:2017-06-12 15:18:01

标签: r web-scraping rvest

我正在尝试从basketballreference.com中提取一列数据,这一点非常特别:

http://www.basketball-reference.com/teams/ATL/2016.html

使用selectorGadget我能够突出显示我想要的页面部分,然后它给我一个参数来放入html_nodes函数。但是,我试图提取玩家的名字,但是当我复制并粘贴了selectorGadget的输出时,它会给我一个名称所包含的链接。我想知道是否有人知道如何使它与实际文本匹配,而不是它包含的链接。例如,列表中的第一个名字是Kent Bazemore。我希望它返回Kent Bazemore,但它正在捕获底层的html:

{xml_node} 'a href="/players/b/bazemke01.html"'

如果有人对如何清理它有任何建议我会非常感谢你的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

获取节点只是第一步。提取文本是第二种方法 - 在本例中为html_text()

在这种情况下,我使用xpath表达式来获取玩家名称:

library(rvest)

u <- "http://www.basketball-reference.com/teams/ATL/2016.html"
u %>%
  read_html() %>%
  html_nodes(xpath = "//*[@id='roster']/tbody/tr/td[@data-stat='player']/a") %>%
  html_text()

[1] "Kent Bazemore"   "Tim Hardaway"    "Kirk Hinrich"    "Justin Holiday"  "Al Horford"     
[6] "Kris Humphries"  "Kyle Korver"     "Shelvin Mack"    "Paul Millsap"    "Mike Muscala"   
[11] "Lamar Patterson" "Dennis Schroder" "Mike Scott"      "Thabo Sefolosha" "Tiago Splitter" 
[16] "Edy Tavares"     "Jeff Teague"