html_attr"href"在rvest中返回NA

Jay*_*ron 2 html css r web-scraping rvest

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

输入以构建变量

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")
Run Code Online (Sandbox Code Playgroud)

输入以查看是否my_nodes来自运动员的名字.

html_text(my_nodes)
Run Code Online (Sandbox Code Playgroud)

输出显示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"  
Run Code Online (Sandbox Code Playgroud)

输入以尝试获取每个运动员的独特页面的网址.

html_attr(my_nodes, "href")
Run Code Online (Sandbox Code Playgroud)

输出显示我的尝试仅返回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
Run Code Online (Sandbox Code Playgroud)

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

MrF*_*ick 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")
Run Code Online (Sandbox Code Playgroud)