¿Cómo busco en HTML generado por Restclient?
Frecuentes
Visto 83 veces
0
¿Cómo puedo buscar una palabra en el HTML generado por el Restclient::Response
¿módulo?
$getresponse = RestClient.get (url)
html=$getadsresponse.body
puts html
Puedo ver el HTML que se genera, pero ¿cómo busco palabras dentro de ese HTML?
1 Respuestas
0
Utilice un analizador de HTML para interpretar correctamente el HTML. Usando Nokogiri con xpath, por ejemplo:
doc = Nokogiri::HTML(html)
found = doc.xpath('//p[@title = "some word"]/a[contains(text(), "some word")]')
found.each do |node|
puts node.text
end
contestado el 21 de mayo de 12 a las 21:05
¡Muchas gracias! ¿Cómo puedo encontrar qué métodos y accesorios puedo usar en el objeto "encontrado" y el objeto "nodo"? Intenté esto pero no está imprimiendo ningún valor para node.text. La inicialización es correcta porque lo verifiqué con esto doc.search('*').each do |n| puts n.name
e imprime los valores. ¿Algún consejo? gracias de nuevo - user1207289
Puede usar métodos de nodo en doc y node - nokogiri.org/Nokogiri/XML/Node.html. encontrado es un NodeSet como resultado de una búsqueda xpath - nokogiri.org/Nokogiri/XML/NodeSet.html. Recomendaría comenzar con un argumento xpath más simple y trabajar desde allí. - PinnyM
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby-on-rails ruby or haz tu propia pregunta.
Debe usar un analizador HTML (Nokogiri, HPricot, etc.). ¿Puede proporcionar un ejemplo de lo que desea recuperar mediante la búsqueda? Es decir, ¿solo desea saber si existe una palabra en el documento o desea devolver los nodos que la contienen? Además, ¿importa si la palabra es un atributo o una etiqueta? - PinnyM
@PinnyM Quiero buscar una palabra (por ejemplo, alguna palabra) que siempre estará en esta etiqueta
<p class="bdy" title="some word"><a href="javascript:void(0);" onmouseover="return wMes_1523188('');" onmouseout="cMes_1523188();" onclick="return false;">some word</a></p>
y luego hacer que la prueba pase/falle dependiendo de si obtengo la palabra o no. Además, "alguna palabra" aparece solo dos veces en todo el documento html. Solo pensé en mencionar eso. déjame saber si se requiere alguna aclaración adicional. Gracias de nuevo. - user1207289