Beispiele für Selektoren (CSS, XPath) zum Analysieren von Daten von Online-Shop-Sites
Beispiele für Selektoren (CSS, XPath) zum Abrufen von Daten von den Seiten von Online-Shops (Website-Parsing).
Den Artikel des Herstellers entnehmen wir der Werteliste (Tags ul li)
CSS-Selektor:
ul. desc-list li:nth-child(7)::text()
oder XPATH für SKU:
//ul[li/text() = "Artikel"]/span[2]/text()
Holen Sie sich den Artikel des Herstellers aus der Produktattributtabelle (Filtern nach Produktattributname)
XPath-Selektor: //tr[td/text() = "Artikel"]/td[2]/text()
Wir erhalten den Preis des Produkts (basierend auf der Element-ID, die sich auf jeder Seite mit dem Produkt ändert)
XPath-Selektor, der nach dem Wort "retail_price" sucht: //span[contains(@id,"retail_price")]
Wir erhalten eine Liste mit Links zu anderen Produktseiten (Paginierung), außer der aktuellen Seite (weil auf dieser bereits Links zu Produkten eingegangen sind)
CSS-Selektor: ul. pagination li:not(. active) a
CSS-Locators:
div#pocks — sucht nach einem div, dessen ID gleich pocks ist
div. perl - wir suchen nach einem div, dessen Klasse perl heißt
body[vlink=1] — Suche nach Body-Tag mit dem Attribut vlink=1
body[vlink*=1] — Wir suchen nach einem Body-Tag, in dem das vlink-Attribut eines enthält
body[vlink€=1] — Suche nach einem Body-Tag, dessen vlink-Attribut mit eins endet
body[vlink^=1] — Suche nach einem Body-Tag, dessen vlink-Attribut mit eins beginnt
Space findet alle Nachkommen eines Elements. Beispiel:
div#ires a - findet alle Links von einem div mit der ID ires
div#ires a:nth-of-type(1) - findet zuerst alle Links aus dem div mit der ID ires
div >a - alle divs, die unmittelbar nach a ein untergeordnetes Element haben
div+div - findet das div, das unmittelbar nach dem ersten div kommt
div+a - alle divs unmittelbar gefolgt von einem Element (Links)
div ~ div - Element für Element überspringen
a:contains("ggdgdgd") - findet a
*. warning - jedes Element mit der Warnungsklasse
div * p - wir suchen nach einem p-Element, das einen div-Vorfahren hat, und zwischen ihnen können Elemente liegen
h1. opener+h2 — Suche nach dem Nachbarn von Element h2, vor dem Element h1 den Klassenöffner hat
a[rel~="copyring"] - Wir suchen nach einem Link mit dem rel-Attribut, das eine Klasse mit dem copyring-Wert enthält
span[hello='Cleveland'][goodbye='Columbus'] – Sucht nach einem span-Element, bei dem ein hello-Attribut auf Cleveland und ein goodbye-Attribut auf Columbus festgelegt ist
div. flyout > a - Finden Sie alle Links, die sich unmittelbar nach dem div-Element mit Klassen-Flyout befinden
div#action_list_body_current li:nth-of-type(1) — Finde die zweite Aufgabe in der aktuellen Liste
#quick search a[accesskey ="p"] — Finden Sie das zweite Bild mit dem accesskey-Attribut "p" in der Schnellsuche
#context_list a:contains('line') - findet den Kontext in der Kontexttabelle, der den Text "line" enthält
XPath-Locators:
/body/. . - der Elternteil des HTML-Tags badi, tobish
Was ist der Unterschied zwischen xpath und css, in xspace können wir von unten nach oben gehen und in css nur von oben nach unten. //
//a[text()='irgendein Wert'] — Finden Sie einen Link mit Text mit einem gewissen Wert
author[last-name [position()=1]= "Bob"] - findet ein author-Element, das ein last-name-Element hat und last-name die erste Position ist
//div[@id='header'] — div-Element mit id-Header
//div[1] - erstes div
//div[position()=1] ist dasselbe wie //div[1]
//div[2 und 3] - zweites und drittes div
In XPath definieren Elementbeziehungen Achsen
// - bedeutet, dass wir nach allen verschachtelten Elementen suchen
/descendant:div[@id='header'] - findet alle Nachkommen des div mit id-Header
book/*/last-name - wir finden das Element Buche, nach dem ein beliebiges Element steht, und unmittelbar danach kommt das Element Lastname
*[@specialty] – jedes Element mit einem Spezialattribut
author[first-name][3] ist ein Element namens author, das ein untergeordnetes first-name-Element hat und das dritte ist
Autor[nicht(Abschluss oder Auszeichnung) und Veröffentlichung] – findet ein Autorenelement, das keinen Nachkommen eines Abschluss- oder Auszeichnungselements, aber ein Veröffentlichungselement hat
ancestor::author[parent::book][1] — findet einen Vorfahren, der den Elementnamen author hat und der ein nicht-untergeordnetes übergeordnetes Buch hat, und wählt die erste Position aus
//a[text() ="Preferences"][ancestor::*[@id='header']] — finden Sie den Preferences-Link im oberen Menü (gehen Sie von oben nach unten, schreiben Sie zuerst einen Link mit dem Text Preferences
//*[@id ='action_list_current']//span[@class='next_action_name'][following-sibling::*/a[contains(@href,'contexts') and text() ='Offline'] ] - Finden Sie alle Aufgaben in der aktuellen Liste mit Offline-Kontext
Wert aus Stil ziehen
substring-before(substring-after(//div[@class="Header"]/div[@class="Header-jpeg"]/@style, "background-image: url(), ")")
Reg. -Nr. Ausdruck
\€\(. prod-img"\). css\("backgroundImage", "url\((. *?)\)
um einen Link zu einem Bild aus einem Text zu erhalten
€(". prod-img"). css("backgroundImage", "url(https://site.com/img/014/114288.jpg)");
Verbindungen:
w3.org/TR/selectors/
w3schools.com/css/css_examples. asp
Allgemeine Beschreibung der Site-Analyse .
Überwachung der Preise von Wettbewerbern im Internet