Rvest提取选项值和select中的文本

时间:2015-07-24 16:25:25

标签: r web-scraping rvest

Rvest选择选项,我认为最简单的解释一个可重复的例子

网站:http://www.verema.com/vinos/portada 我想获得各种类型的葡萄酒(Tipos de vinos),在html代码中是:

<select class="campo select" id="producto_tipo_producto_id" name="producto[tipo_producto_id]">
<option value="">Todos</option>
<option value="211">Tinto</option>
<option value="213">Blanco</option>
<option value="215">Rosado</option>
<option value="216">Espumoso</option>
<option value="217">Dulces y Generosos</option></select>

XPath :  //*[@id="producto_tipo_producto_id"]  or
CSS : #producto_tipo_producto_id  or
Class: campo select

我想将data.frame作为

211 Tinto

213 Blanco

215 Rosado

216 Espumoso

217 Dulces y Generosos

我的代码(R):

library(rvest)

Pagina.R <- html(x = "http://www.verema.com/vinos/portada")

text <- Pagina.R %>% 
  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>%
  html_text() 
text

values <- Pagina.R %>% 
  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>%
  html_attr("option value")       #problem????
values

Res <- data.frame(text = text, values = values, stringsAsFactors = FALSE)
Res  # problem  

建议?

谢谢。

更新

修订后的功能代码:

library(rvest)

Pagina.R <- html(x = "http://www.verema.com/vinos/portada")

text <- Pagina.R %>% 
#  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>%
  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>%
  html_text() 
text

values <- Pagina.R %>% 
#  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>%
  html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>%
   # html_attr("option value") 
  html_attr("value") 
values

Res <- data.frame(text = text, values = values, stringsAsFactors = FALSE)
Res 

0 个答案:

没有答案