Im vorherigen Artikel habe ich kurz das [Grundkonzept von XPath] vorgestellt (https://qiita.com/Octoparse_Japan/items/b54e42d696d2311b7b9a). Dieses Mal werde ich vorstellen, wie man mit XPath Daten von einer Webseite (HTML) spezifiziert und erfasst, dh wie man XPath schreibt.
Im folgenden HTML-Beispiel sehen Sie, dass der Text von Symbolen wie <> </ strong> wie </ html> umgeben ist. Solche Symbole wie <> </ strong> werden als Tags bezeichnet.
** <Tagname> Der Inhalt wird hier sein ... </ Tagname>
**
Das erste Tag wird als "Start-Tag" und das End-Tag als "End-Tag" bezeichnet. Und das Ganze von diesem Start-Tag bis zum End-Tag wird als Element bezeichnet.
Der Teil, der im HTML unten rot angezeigt wird, ist das Tag. (Es wird in Firefox blau und in Chrome lila angezeigt.)
Unten finden Sie eine Zusammenfassung der Tags, die Sie häufig in HTML sehen. Weitere Informationen finden Sie in diesem Artikel!
** Die häufigste Methode zum Schreiben von XPath besteht darin, die durch einen Schrägstrich „/“ getrennten Tags zu schreiben. ** **.
Wenn Sie beispielsweise "Harry Potter" aus diesem HTML-Code abrufen möchten, können Sie "HTML-Tag-> Body-Tag-> h1-Tag" in der Reihenfolge oben in der Baumstruktur angeben. Schreiben Sie wie folgt.
/html/body/h1
Sie können auch "//" verwenden, um den halben Pfad wegzulassen.
//h1
Sie können das N-te Tag angeben, wenn Sie mehr als einem Tag entsprechen möchten. Wenn Sie in diesem Beispiel "7.631 Yen" erhalten, wird in der zweiten Zeile von der Zeile "div" "span" angegeben. Schreiben Sie also wie folgt.
//div/span[2]
In der Abstraktion sieht die in Tags (Elementen) geschriebene XPath-Syntax folgendermaßen aus:
** // Tag-Name //タグ名/タグ名
**
Attribute werden in Tags beschrieben und repräsentieren die Informationen der Tags im Detail. Durch Hinzufügen von Attributen zu Tags können Sie die Wirkung des Elements angeben und bestimmte Anweisungen hinzufügen. Attribute werden normalerweise als ** "id =" booksTitle "" ** angezeigt. Es ist auch möglich, mehrere Attribute anzugeben.
** <tag name attribute name =" attribute value ">
**
Die häufigsten Attribute sind href, title, style, src, id, class usw. Bitte lesen Sie diesen Artikel für Details!
** In XPath werden Attribute durch "@" -Funktionen dargestellt. ** **.
Wenn Sie beispielsweise "Harry Potter" erhalten möchten, schreiben Sie XPath wie folgt.
//h1[@id="booksTitle"]
In der Abstraktion sieht die in Attributen geschriebene XPath-Syntax folgendermaßen aus:
** // Tag name [@ attribute name =" attribute value "]
**
Wenn Sie alle Elemente mit denselben Attributen erhalten möchten, schreiben Sie:
** // * [@ attribute name =" attribute value "]
**
Der Text ist wie unten gezeigt in Tags eingeschlossen.
** <Tagname> Text geht hierher ... </ Tagname>
**
Beim Abrufen von Daten von einer Webseite wird normalerweise der Inhalt oder Text auf der Seite abgerufen. So können Sie den gewünschten Text direkt angeben.
** In XPath wird Text durch die Funktion "text ()" dargestellt. ** **.
Wenn Sie beispielsweise "Harry Potter" erhalten möchten, geben Sie es im Text an und schreiben Sie wie folgt.
//h1[text()="Harry Potter"]
In der Abstraktion sieht die in Attributen geschriebene XPath-Syntax folgendermaßen aus:
** // Tag name [text () =" Text zum Abrufen "]
**
Wenn Sie alle Elemente mit demselben Text erhalten möchten, schreiben Sie:
** // * [text () =" Text zum Abrufen "]
**
In der HTML-Baumstruktur haben alle Elemente eine Eltern-Kind / Geschwister-Beziehung.
Elemente, die ein oder mehrere Elemente enthalten, werden als übergeordnete Elemente bezeichnet, und diejenigen, die enthalten, sind untergeordnete Elemente. Das untergeordnete Element hat nur ein übergeordnetes Element und befindet sich zwischen den Start- und End-Tags des übergeordneten Elements. Elemente mit demselben übergeordneten Element werden als Geschwisterelemente bezeichnet.
Schauen wir uns auch ein konkretes Beispiel an.
Das folgende Beispiel basiert auf dem Element [body], wobei das Element [body] das übergeordnete Element der Elemente [h1] und [div] ist und die Elemente [h1] und [div] untergeordnete Elemente des Elements [body] sind. Dies ist ein Beispiel für das Abrufen von Elementen, die eine Eltern-Kind / Geschwister-Beziehung haben, und das Ändern des Stils für jedes Element.
Die Elemente [h1] und [div] sind Geschwister, da sie dasselbe übergeordnete Element [body] haben.
Da das Element [div] das übergeordnete Element der beiden Elemente [span] ist, sind die beiden Elemente [span] Nachkommen des Elements [body].
Sie können Elemente erhalten, die eine Eltern-Kind- oder Geschwisterbeziehung zum aktuellen Element als Basispunkt haben. Wenn Sie beispielsweise "7.631 Yen" erhalten möchten, können Sie wie folgt schreiben, indem Sie es in Bezug auf das Tag angeben.
** Wenn Sie es zu einem untergeordneten Element des [div] -Elements machen **
//div/span[2]
** Wenn Sie es zu einem Nachkommenelement des [body] -Elements machen **
//body//span[2]
** Wenn Sie es zu einem Geschwisterelement des Elements [span class = "author not Faded"] machen **
//span[@class="author notFaded"]/following-sibling::span[1]
** Wenn Sie es zu einem Geschwisterelement des Elements [span class = "tax_postage"] machen **
//span[@class="tax_postage"]/preceding-sibling::span[1]
Zwei Funktionen, "folgendes Geschwister ::" und "vorheriges Geschwister ::", werden häufig verwendet, um Geschwister-Tags anzugeben.
"Following-sibling ::" ist sehr nützlich, wenn Sie Tabellenelemente angeben. Zum Beispiel gibt es das folgende HTML-Beispiel.
Wenn dieser HTML-Code in eine Seite konvertiert wird, sieht er wie eine Tabelle wie die folgende aus.
In diesem Beispiel wird der Geschäftsname "12345" erfasst. Es gibt jedoch mehrere [td] -Elemente, und ** // td [1] ** kann nicht verwendet werden. Wenn Sie Tabellen mit derselben Struktur von mehreren Seiten gleichzeitig abrufen möchten, wird empfohlen, "folgendes Geschwister ::" mit dem festen Wert "Speichername" als Basispunkt zu verwenden. Schreiben Sie wie folgt.
** // th [text () =" Geschäftsname "] / folgendes Geschwister :: td [1]
**
In der Abstraktion sieht die in Tag-Beziehungen geschriebene XPath-Syntax folgendermaßen aus: Wenn die obige Syntax mit mehreren übereinstimmt, können Sie das N-te Tag durch Hinzufügen von ** [N] ** angeben.
Was denken Sie? Das Obige ist die am häufigsten verwendete XPath-Schreibmethode. Bitte probieren Sie es aus. Nächstes Mal werde ich die Funktionen vorstellen, die häufig für XPath verwendet werden. freue mich auf!
Originalartikel: https://helpcenter.octoparse.jp/hc/ja/articles/360013122059
Recommended Posts