Exemples de sélecteurs (CSS, XPath) pour analyser les données des sites de boutiques en ligne
Exemples de sélecteurs (CSS, XPath) pour récupérer les données des pages des boutiques en ligne (website parsing).
Nous obtenons l'article du fabricant à partir de la liste des valeurs (tags ul li)
Sélecteur CSS :
ul. desc-list li:nth-child(7)::text()
ou XPATH pour SKU :
//ul[li/text() = "Article"]/span[2]/text()
Obtenir l'article du fabricant à partir de la table des attributs du produit (filtrer par nom d'attribut du produit)
Sélecteur XPath : //tr[td/text() = "Article"]/td[2]/text()
Nous obtenons le prix du produit (basé sur l'identifiant de l'élément, qui change à chaque page avec le produit)
Sélecteur XPath recherchant le mot "retail_price": //span[contains(@id,"retail_price")]
Nous obtenons une liste de liens vers d'autres pages de produits (pagination), à l'exception de la page en cours (car des liens vers des produits ont déjà été reçus sur celle-ci)
Sélecteur CSS : ul. pagination li:not(. active) a
Localisateurs CSS :
div#pocks - recherche d'un div dont l'ID est égal à pocks
div. perl - nous recherchons un div dont la classe s'appelle perl
body[vlink=1] — recherche de la balise body avec l'attribut vlink=1
body[vlink*=1] — nous recherchons une balise body, dans laquelle l'attribut vlink en contient une
body[vlink€=1] — recherche d'une balise body dont l'attribut vlink se termine par un
body[vlink^=1] — recherche d'une balise body dont l'attribut vlink commence par un
L'espace trouve tous les descendants d'un élément. Exemple:
div#ires a - trouve tous les liens d'une div avec ID ires
div#ires a:nth-of-type(1) - trouve tous les liens de la div avec l'ID ires en premier
div >a - tous les divs qui ont un enfant immédiatement après eux a
div+div - trouve le div qui vient immédiatement après le premier div
div+a - tous les divs immédiatement suivis d'un éléments (liens)
div ~ div - sauter élément par élément
a:contains("ggdgdgd") - trouve un
*. warning - tout élément avec la classe d'avertissement
div * p - nous recherchons un élément p qui a un ancêtre div et il peut y avoir des éléments entre eux
h1. opener+h2 — recherche l'élément h2 voisin avant lequel l'élément h1 a la classe opener
a[rel~="copyring"] - nous recherchons un lien avec l'attribut rel, qui a une classe à l'intérieur avec la valeur copyring
span[hello='Cleveland'][goodbye='Columbus'] - Recherche un élément span dont l'attribut hello est défini sur Cleveland et l'attribut goodbye défini sur Columbus
div. flyout > a - Trouver tous les liens qui sont immédiatement après l'élément div avec la classe flyout
div#action_list_body_current li:nth-of-type(1) — Recherche la deuxième tâche dans la liste actuelle
#quick search a[accesskey ="p"] — Trouvez la deuxième image avec l'attribut accesskey "p" dans la recherche rapide
#context_list a:contains('line') - trouve le contexte dans la table Contexts qui contient le texte "line"
Localisateurs XPath :
/body/. . - le parent de la balise html badi, tobish
Quelle est la différence entre xpath et css, dans xspace on peut aller de bas en haut, et en css uniquement de haut en bas. //
//a[text()='some value'] — trouve un lien avec du texte une valeur
author[last-name [position()=1]= "Bob"] - trouve un élément author qui a un élément last-name et last-name est la première position
//div[@id='header'] — élément div avec en-tête id
//div[1] - première div
//div[position()=1] est identique à //div[1]
//div[2 et 3] - deuxième et troisième div
Dans xpath, les relations entre les éléments définissent les axes
// - signifie que nous recherchons tous les éléments imbriqués
/descendant:div[@id='header'] - trouve tous les descendants de la div avec l'en-tête id
book/*/last-name - nous trouvons l'élément beech après lequel il y a n'importe quel élément et immédiatement après vient l'élément lastname
*[@specialty] - tout élément avec un attribut de spécialité
auteur[prénom][3] est un élément nommé auteur qui a un élément enfant prénom et est le troisième
author[not(degree or award) and publication] - trouver un élément d'auteur qui n'a pas d'enfant de diplôme ou de récompense, mais qui a un élément de publication
ancestor::author[parent::book][1] — trouve un ancêtre qui a le nom d'élément author et qui a un livre parent non enfant et sélectionne la première position
//a[text() ="Preferences"][ancestor::*[@id='header']] — recherchez le lien Préférences dans le menu du haut (allez de haut en bas, écrivez d'abord un lien avec le texte Préférences
//*[@id ='action_list_current']//span[@class='next_action_name'][following-sibling::*/a[contains(@href,'contexts') and text() ='Offline'] ] - Trouver toutes les tâches dans la liste actuelle avec le contexte hors ligne
Valoriser le style
substring-before(substring-after(//div[@class="Header"]/div[@class="Header-jpeg"]/@style, "background-image: url("), ")")
Rég. expression
\€\(". prod-img"\). css\("backgroundImage", "url\((. *?)\)
pour obtenir un lien vers une image à partir d'un texte
€(". prod-img"). css("backgroundImage", "url(https://site.com/img/014/114288.jpg)");
Liens:
w3.org/TR/selectors/
w3schools.com/css/css_examples. asp
Description générale de l' analyse du site .
Surveillance des prix des concurrents sur Internet