Esempi di selettori (CSS, XPath) per l'analisi dei dati dai siti di negozi online
Esempi di selettori (CSS, XPath) per ottenere dati dalle pagine dei negozi online (analisi siti web).
Otteniamo l'articolo del produttore dall'elenco dei valori (tag ul li)
Selettore CSS:
ul. desc-list li:nth-child(7)::text()
o XPATH per SKU:
//ul[li/text() = "Articolo"]/span[2]/text()
Ottieni l'articolo del produttore dalla tabella degli attributi del prodotto (filtra per nome dell'attributo del prodotto)
Selettore XPath: //tr[td/text() = "Articolo"]/td[2]/text()
Otteniamo il prezzo del prodotto (basato sull'ID elemento, che cambia in ogni pagina con il prodotto)
Selettore XPath che cerca la parola "prezzo_retail": //span[contains(@id,"prezzo_retail")]
Otteniamo un elenco di collegamenti ad altre pagine di prodotti (impaginazione), ad eccezione della pagina corrente (perché su di essa sono già stati ricevuti collegamenti a prodotti)
Selettore CSS: ul. pagination li:not(. active) a
Localizzatori CSS:
div#pocks — alla ricerca di un div il cui ID è uguale a pocks
div. perl - stiamo cercando un div la cui classe è chiamata perl
body[vlink=1] — alla ricerca di tag body con attributo vlink=1
body[vlink*=1] — stiamo cercando un tag body, in cui l'attributo vlink ne contenga uno
body[vlink€=1] — alla ricerca di un tag body il cui attributo vlink termina con uno
body[vlink^=1] — alla ricerca di un tag body il cui attributo vlink inizi con uno
Lo spazio trova tutti i discendenti di un elemento. Esempio:
div#ires a - trova tutti i collegamenti da un div con ID ires
div#ires a:nth-of-type(1) - trova prima tutti i collegamenti dal div con ID ires
div >a - tutti i div che hanno un figlio subito dopo a
div+div - trova il div che viene subito dopo il primo div
div+a - tutti i div seguiti immediatamente da elementi (link)
div ~ div - salta elemento per elemento
a:contains("ggdgdgd") - trova a
*. warning - qualsiasi elemento con la classe di avviso
div * p - stiamo cercando un elemento p che abbia un antenato e potrebbero esserci elementi tra di loro
h1. opener+h2 — cerca l'elemento h2 neighbor prima del quale l'elemento h1 ha un apri classe
a[rel~="copyring"] - stiamo cercando un collegamento con l'attributo rel, che ha una classe all'interno con il valore copyring
span[hello='Cleveland'][goodbye='Columbus'] - Cerca un elemento span che abbia un attributo ciao impostato su Cleveland e un attributo arrivederci impostato su Columbus
div. flyout > a - Trova tutti i collegamenti immediatamente dopo l'elemento div con il riquadro a comparsa della classe
div#action_list_body_current li:nth-of-type(1) — Trova la seconda attività nell'elenco corrente
#ricerca rapida a[accesskey ="p"] — Trova la seconda immagine con l'attributo accesskey "p" nella ricerca rapida
#context_list a:contains('line') - trova il contesto nella tabella Contexts che contiene il testo "line"
Localizzatori XPath:
/body/. . - il genitore del tag html badi, tobish
Qual è la differenza tra xpath e css, in xspace possiamo andare dal basso verso l'alto e in css solo dall'alto verso il basso. //
//a[text()='qualche valore'] — trova un collegamento con testo di qualche valore
autore[cognome [posizione()=1]= "Bob"] - trova un elemento autore che abbia un elemento cognome e cognome è la prima posizione
//div[@id='header'] — elemento div con intestazione id
//div[1] - prima div
//div[posizione()=1] è uguale a //div[1]
//div[2 e 3] - seconda e terza div
In xpath, le relazioni tra gli elementi definiscono gli assi
// - significa che stiamo cercando tutti gli elementi annidati
/discendente:div[@id='header'] - trova tutti i discendenti del div con intestazione id
book/*/cognome - troviamo l'elemento faggio dopo il quale c'è un qualsiasi elemento e subito dopo arriva l'elemento cognome
*[@specialty] - qualsiasi elemento con un attributo di specialità
author[first-name][3] è un elemento denominato author che ha un elemento first-name figlio ed è il terzo
autore[non(laurea o premio) e pubblicazione] - trova un elemento autore che non ha discendenti da un elemento di laurea o premio, ma ha un elemento di pubblicazione
ancestor::author[parent::book][1] — trova un antenato che ha il nome dell'elemento author e che ha un libro genitore non figlio e seleziona la prima posizione
//a[text() ="Preferenze"][ancestor::*[@id='header']] — trova il collegamento Preferenze nel menu in alto (vai dall'alto verso il basso, prima scrivi un collegamento con il testo Preferenze
//*[@id ='action_list_current']//span[@class='next_action_name'][following-sibling::*/a[contains(@href,'contexts') and text() ='Offline'] ] - Trova tutte le attività nell'elenco corrente con il contesto offline
Ottenere valore dallo stile
substring-before(substring-after(//div[@class="Header"]/div[@class="Header-jpeg"]/@style, "background-image: url(), ")")
reg. espressione
\€\(". prod-img"\). css\("backgroundImage", "url\((. *?)\)
per ottenere un collegamento a un'immagine da un testo
€(". prod-img"). css("backgroundImage", "url(https://site.com/img/014/114288.jpg)");
Collegamenti:
w3.org/TR/selectors/
w3schools.com/css/css_examples. asp
Descrizione generale dell'analisi del sito .
Monitoraggio dei prezzi dei concorrenti su Internet