Heim >Backend-Entwicklung >PHP-Tutorial >Wie wähle ich eine CSS-Klasse mit XPath richtig aus?

Wie wähle ich eine CSS-Klasse mit XPath richtig aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-08 22:46:14715Durchsuche

How to Correctly Select a CSS Class with XPath?

Auswahl einer CSS-Klasse mit XPath

Im Zusammenhang mit Web Scraping ist die genaue Ausrichtung auf bestimmte Elemente basierend auf ihren CSS-Klassen von entscheidender Bedeutung. Während CSS-Selektoren bei der Arbeit mit HTML unkompliziert sind, wird XPath erforderlich, wenn man mit XML-Dokumenten arbeitet oder fortgeschrittene Web-Scraping-Techniken verwendet.

Problem: Auswahl einer einzelnen Klasse mit XPath

Diese Frage ergibt sich aus der Sie müssen Elemente ausschließlich anhand ihrer „Datums“-Klasse mithilfe von XPath auswählen. Das bereitgestellte Code-Snippet führt jedoch zu unerwarteten Ergebnissen.

//[@class="date"]

Lösung: Das richtige XPath-Äquivalent

Um Elemente mit einer bestimmten Klasse in XPath richtig auszuwählen, sollte die folgende Syntax verwendet werden:

//*[contains(concat(" ", normalize-space(@class), " "), " foo ")]

In diesem Ausdruck:

  • normalize-space(@class) entfernt führendes und nachgestellte Leerzeichen und fasst mehrere Leerzeichen zu einem zusammen, um sicherzustellen, dass das Klassenattribut konsistent formatiert ist.
  • concat(" ", normalize-space(@class), " ") fügt Leerzeichen um den normalisierten Klassenwert hinzu, um ihn zu erstellen vergleichbar mit dem Zielklassennamen.
  • contains(...) sucht nach dem Zielklassennamen innerhalb des geänderten Klassenattributwerts.

Vermeiden Falsche Ansätze

Zwei häufige, aber fehlerhafte XPath-Selektoren, die Sie vermeiden sollten, sind:

  • //*[@class="date"]: Berücksichtigt keine Elemente mit mehreren Klassen.
  • //*[contains(@class, „date“)]: Entspricht Elementen mit Klassennamen, die „date“ enthalten, z. B. „foobar“. falsch.

Gutschrift

Die hier bereitgestellte Lösung wird einem anderen Web-Scraper zugeschrieben, der einen wertvollen Blog-Beitrag zu diesem speziellen Problem veröffentlicht hat. Unser Dank gilt ihnen für das Teilen ihrer Erkenntnisse.

Das obige ist der detaillierte Inhalt vonWie wähle ich eine CSS-Klasse mit XPath richtig aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn