html_attr" href"在rvest中返回NA

时间:2017-07-06 15:04:39

标签: html css r web-scraping rvest

我的目标是使用rvest提取网站中与特定css元素相关联的网址。在查看其他几个类似的问题之后,我想我需要将html_attr函数与'href'参数一起使用。使用我目前的脚本,这只会返回NA值,但我希望它会返回网址。

输入以构建变量

library(rvest)

my_url <- "http://www.sherdog.com/events/UFC-Fight-Night-111-Holm-vs-Correia-58241"

my_read_url <- read_html(my_url)

my_nodes <- html_nodes(my_read_url, ".fighter_result_data a span , .right_side a span , .left_side a span")

输入以查看my_nodes是否来自运动员的姓名。

html_text(my_nodes)

显示my_nodes的输出正在选择我想要的css元素。

[1] "Holly Holm"          "Bethe Correia"       "Marcin Tybura"      
 [4] "Andrei Arlovski"     "Colby Covington"     "Dong Hyun Kim"      
 [7] "Rafael dos Anjos"    "Tarec Saffiedine"    "Jon Tuck"           
[10] "Takanori Gomi"       "Walt Harris"         "Cyril Asker"        
[13] "Alex Caceres"        "Rolando Dy"          "Yuta Sasaki"        
[16] "Justin Scoggins"     "Jingliang Li"        "Frank Camacho"      
[19] "Russell Doane"       "Kwan Ho Kwak"        "Naoki Inoue"        
[22] "Carls John de Tomas" "Lucie Pudilova"      "Ji Yeon Kim"  

输入以尝试获取每个运动员的网址&#39;独特的页面。

html_attr(my_nodes, "href")

输出显示我的尝试仅返回NA值列表

[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

任何人都可以帮我实际获取网址而不是这些NA值吗?谢谢!

1 个答案:

答案 0 :(得分:5)

您正在选择span元素,而不是a命令中的html_nodes元素。 span元素没有href=属性,只有a个元素。而是使用

my_nodes <- html_nodes(my_read_url, ".fighter_result_data a, .right_side a, .left_side a")
html_text(my_nodes)
html_attr(my_nodes, "href")