Frage

Ich habe einen XPath, mit dem ich versuche, Meta -Tags zu entsprechen, die ein Namensattribut mit einem Wert haben, der das Wort 'Schlüsselwort' unabhängig von Fall enthält. Grundsätzlich versuche ich zu passen:

<meta name="KEYWORDS">
<meta name="Keywords">
<meta name="keywords">

Mit dem XPath

'descendant::meta[contains(lower-case(@name), "keyword")]/@content'

Ich verwende Scrapy und es sind eingebaute Selektoren, aber wenn ich diesen XPath versuche, erhalte ich einen Fehler "Ungültiges XPath: ...". Was mache ich falsch und was ist der richtige Weg, um das zu tun, was ich will?

War es hilfreich?

Lösung

Scrapy -Selektoren werden über der Bibliothek LibXML2 gebaut, die XPath 2.0 nicht unterstützt. Zumindest libxslt nicht sicher.

Sie können XPath 1.0 Translate () verwenden, um dies zu lösen. Im Allgemeinen wird es so aussehen:

translate(yourString, 
          'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
          'abcdefghijklmnopqrstuvwxyz')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top