Para escribir expresiones se usara lo siguiente $x('')
. Entre las comillas se van a escribir las expresiones, las expresiones tienen diferentes símbolos que tienen una utilidad.
Se describe la utilidad de cada expresión.
/
hace referencia a la raíz, o tambien significa un salto entre nodos. e.g /html/body
Muestra todo lo que hay dentro del body de html//
Sirve para acceder a todos los nodos con la etiqueta seleccionada, salteando los nodos que no nos interesan. e.g (//span)
muestra todas las etiquetas span*..
Sirve para acceder a los nodos padre de la etiqueta tag. e.g //span/..
accede a todos los nodos padre de span e.g. [body
].
Hace referencia al nodo actual. e.g. //span/.
es equivalent a //span
@
Sirve para traer los atributos. e.g //div/@class
Nos da las clases de todos los divs. **Todo lo que viene después de un @ es un atributo**Ejemplo:
# Fuentede trabajo Quotes to Scrape:
url ="<http://quotes.toscrape.com/>"
## Quiero extraer el textode mi nodo h1.
$x('//h1/a/text()').map(x => x.wholeText)
# Devuelveen consola: ["Quotes to Scrape"]
# (La función map pertenece a Js yla estoy usando para
mostrar todo el texto de la
selección de Xpath)
#Estoy trayendo todos los atributos class de los nodosspan.
$x('//span/@class')
Para ser específicos con los datos a extraer se usan Predicados [ ]
Si desean ver directamente el elemento en la página y verificar su expresión. Se puede usar en la pestaña de Elements el comando Ctrl + F y poniendo directamente la expresión, el navegador de muestra el elemento en concreto. Por ejemplo: //h1/a/text()