Sintaxis XPath
Creo que todos los estudiantes que han escrito rastreadores conocen la existencia de XPath. El blogger aprendió recientemente sobre la sintaxis de XPath cuando estaba aprendiendo Scrapy. Aquí hay una breve introducción:
Primero, debemos comprender algunos términos de XPath.
2017/3/3 16:02:29
En XPath, hay siete tipos de nodos: elementos, atributos, texto, espacios de nombres, instrucciones de procesamiento, comentarios y documentos ( raíz) nodo. Los documentos XML se tratan como árboles de nodos. La raíz del árbol se llama nodo de documento o nodo raíz.
Tome el siguiente documento xml como ejemplo:
Los nodos en el ejemplo anterior son:
Padre: Cada elemento y atributo tiene un padre. En el ejemplo, el padre de lt;studentgt; es lt;classgt;;
Hijos: el elemento nodo puede tener cero, uno o más hijos. En el ejemplo, el hijo de lt;classgt; es lt;studentgt;;
Hermanos: nodos con el mismo padre. En el ejemplo, lt;namegt; y lt;IDgt; son hermanos;
Ancestro: el padre de un nodo, el padre del padre, etc.
Descendientes: hijos de un nodo, hijos de hijos, etc.
El valor básico es un nodo sin padre ni hijo.
Los valores básicos en el ejemplo anterior son:
Los elementos son valores básicos o nodos.
Bien, comencemos con la explicación formal de la sintaxis XPath (tenga en cuenta que, por supuesto, las siguientes expresiones se pueden mezclar):
Seleccione todos los nodos secundarios de este nodo.
Seleccionar desde el nodo raíz.
Selecciona nodos en el documento a partir del nodo actual que coincida con la selección, independientemente de su posición.
Selecciona el nodo actual.
Seleccione el nodo padre del nodo actual.
Seleccionar atributos.
Para el siguiente documento xml (consulte /articles/iqQFBn)
Si usa:
data = selector.xpath('//div[@id = "test2"]/text()').extract()[0]
Sólo se puede extraer "belleza"
Si se usa:
data = selector.xpath('//div[@id="test2"]/font/text()').extract()[0]
Y solo puede extraer "Tu WeChat es ¿Cuánto? ”
¿Cómo podemos extraer “Belleza, cuál es tu ID de WeChat?”
Fácil de hacer, ¡no te preocupes! !