2017-07-06 8 views
1

我的目标是使用rvest来提取与网站中特定CSS元素关联的网址。看过其他几个类似的问题后,我想我需要使用html_attr函数和'href'参数。用我目前的脚本,这只会返回NA值,但我希望它会返回url。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" 

输入,试图让该网址到每个运动员的独特的网页。

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值的列表?谢谢!

回答

4

您正在选择命令中的span元素,而不是a元素。 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") 
+0

这得到99%的方式。 'html_text(my_nodes)'现在在索引1和3处有奇怪点。 无论如何用css元素创建一个'my_nodes'变量,它会生成我感兴趣的特定运动员列表,而没有奇数索引,正确的网址? 谢谢! –