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值吗?谢谢!
您正在选择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)