如何通过id选择特定的css节点

Veg*_*ird 9 html css r web-scraping rvest

我正在尝试使用rvest包来从网页中抓取数据.在一个简单的格式中,html代码如下所示:

<div class="style">
   <input id="a" value="123">
   <input id="b">
</div>
Run Code Online (Sandbox Code Playgroud)

我想从第一个输入中获取值123.我尝试了以下R代码:

library(rvest)
url<-"xxx"
output<-html_nodes(url, ".style input")
Run Code Online (Sandbox Code Playgroud)

这将返回一个输入标签列表:

[[1]]
<input id="a" value="123">
[[2]]
<input id="b">
Run Code Online (Sandbox Code Playgroud)

接下来我尝试使用html_node通过id引用第一个输入标记:

html_node(output, "#a")
Run Code Online (Sandbox Code Playgroud)

这里它返回了一个空值列表,而不是我想要的输入标签.

[[1]]
NULL
[[2]]
NULL
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何使用其id引用输入标记?

Ren*_*rop 21

你可以使用xpath:

require(rvest)
text <- '<div class="style">
   <input id="a" value="123">
   <input id="b">
</div>'

h <- read_html(text)

h %>% 
  html_nodes(xpath = '//*[@id="a"]') %>%
  xml_attr("value")
Run Code Online (Sandbox Code Playgroud)

获取css-和xpath-selector的最简单方法是使用http://selectorgadget.com/.对于像您这样的特定属性,使用chrome的开发人员工具栏来获取xpath,如下所示: 在此输入图像描述