Ejemplos de selectores (CSS, XPath) para analizar datos de sitios de tiendas en línea
Ejemplos de selectores (CSS, XPath) para obtener datos de las páginas de las tiendas en línea (análisis de sitios web).
Obtenemos el artículo del fabricante de la lista de valores (etiquetas ul li)
Selector de CSS:
ul. desc-list li:nth-child(7)::text()
o XPATH para SKU:
//ul[li/texto() = "Artículo"]/span[2]/texto()
Obtenga el artículo del fabricante de la tabla de atributos del producto (filtre por nombre de atributo del producto)
Selector XPath: //tr[td/text() = "Artículo"]/td[2]/texto()
Obtenemos el precio del producto (según la identificación del elemento, que cambia en cada página con el producto)
Selector de XPath que busca la palabra "precio_minorista": //span[contiene(@id,"precio_minorista")]
Obtenemos una lista de enlaces a otras páginas de productos (paginación), excepto a la página actual (porque ya se han recibido enlaces a productos en ella)
Selector de CSS: ul. pagination li:not(. active) a
Localizadores CSS:
div#pocks — buscando un div cuyo ID sea igual a pocks
div. perl - estamos buscando un div cuya clase se llame perl
body[vlink=1]: busca la etiqueta del cuerpo con el atributo vlink=1
body[vlink*=1] — estamos buscando una etiqueta de cuerpo, en la que el atributo vlink contiene uno
body[vlink€=1] — buscando una etiqueta de cuerpo cuyo atributo vlink termine con uno
body[vlink^=1]: busca una etiqueta de cuerpo cuyo atributo vlink comience con uno
El espacio encuentra todos los descendientes de un elemento. Ejemplo:
div#ires a - encuentra todos los enlaces de un div con ID ires
div#ires a:nth-of-type(1) - encuentra primero todos los enlaces del div con ID ires
div >a - todos los divs que tienen un hijo inmediatamente después de ellos a
div+div - encuentra el div que viene inmediatamente después del primer div
div+a - todos los divs seguidos inmediatamente por elementos (enlaces)
div ~ div - saltar elemento por elemento
a:contains("ggdgdgd") - encuentra un
*. warning - cualquier elemento con la clase de advertencia
div * p - estamos buscando un elemento p que tenga un ancestro div y puede haber elementos entre ellos
h1. opener+h2: busca el elemento vecino h2 antes del cual el elemento h1 tiene la clase de apertura
a[rel~="copyring"] - estamos buscando un enlace con el atributo rel, que tiene una clase dentro con el valor de copia
span[hello='Cleveland'][goodbye='Columbus']: busca un elemento de intervalo que tenga un atributo de hola establecido en Cleveland y un atributo de despedida establecido en Columbus
div. flyout > a - Encuentra todos los enlaces que están inmediatamente después del elemento div con el control flotante de clase
div#action_list_body_current li:nth-of-type(1) — Encuentra la segunda tarea en la lista actual
#búsqueda rápida a[tecla de acceso ="p"] — Encuentra la segunda imagen con el atributo de clave de acceso "p" en la búsqueda rápida
#context_list a:contains('line') - encuentra el contexto en la tabla Contexts que contiene el texto "line"
Localizadores XPath:
/body/. . - el padre de la etiqueta html badi, tobish
Cual es la diferencia entre xpath y css, en xspace podemos ir de abajo hacia arriba, y en css solo de arriba hacia abajo. //
//a[texto()='algún valor'] — encuentra un enlace con texto algún valor
autor[apellido [posición () = 1] = "Bob"]: encuentre un elemento de autor que tenga un elemento de apellido y el apellido sea la primera posición
//div[@id='header'] — elemento div con encabezado de identificación
//div[1] - primer div
//div[posición()=1] es lo mismo que //div[1]
//div[2 y 3] - segundo y tercer div
En xpath, las relaciones entre elementos definen ejes
// - significa que estamos buscando todos los elementos anidados
/descendant:div[@id='header'] - encuentra todos los descendientes del div con encabezado de identificación
book/*/last-name - encontramos el elemento beech después del cual hay cualquier elemento e inmediatamente después viene el elemento lastname
*[@specialty] - cualquier elemento con un atributo de especialidad
autor[nombre][3] es un elemento llamado autor que tiene un elemento secundario de nombre y es el tercero
autor [no (título o premio) y publicación]: encuentre un elemento de autor que no tenga un título o premio secundario, pero tenga un elemento de publicación
ancestor::author[parent::book][1] — busque un antepasado que tenga el nombre de elemento author y que tenga un libro padre que no sea hijo y seleccione la primera posición
//a[text() ="Preferences"][ancestor::*[@id='header']] — encuentre el enlace Preferencias en el menú superior (vaya de arriba hacia abajo, primero escriba un enlace con el texto Preferencias
//*[@id ='action_list_current']//span[@class='next_action_name'][siguiente-hermano::*/a[contains(@href,'contexts') and text() ='Offline'] ] - Encuentra todas las tareas en la lista actual con contexto sin conexión
Obtener valor del estilo
substring-before(substring-after(//div[@class="Header"]/div[@class="Header-jpeg"]/@style, "background-image: url("), ")")
registro expresión
\€\(". prod-img"\). css\("imagen de fondo", "url\((. *?)\)
para obtener un enlace a una imagen de un texto
€(". prod-img"). css("Imagen de fondo", "url(https://site.com/img/014/114288.jpg)");
Enlaces:
w3.org/TR/selectors/
w3schools.com/css/css_examples. asp
Descripción general del análisis del sitio .
Seguimiento de los precios de los competidores en Internet