2017-12-28 26 views
-1

dies HTML, die ichXpath wie Titel Wert überprüfen, ob Wert Zeichen erweitert wird

<a href="/audio-books/type/computer/page/2/">»</a> 

Problem finden möchten, »was

ist
&raquo; 

ich versucht habe:

response.xpath('//div[@class="wp-pagenavi"]/a[@title="»"]') 

und

response.xpath('//div[@class="wp-pagenavi"]/a[@title="&raquo;"]') 

aber es funktioniert nicht.

Gibt es eine Möglichkeit, nach einem Wert in XPath zu suchen, wenn der Wert aus Zeichenentitäten oder erweiterten Zeichen stammt?

Ich versuche lin zur nächsten Seite zu finden, so kann ich

response.xpath('//div[@class="wp-pagenavi"]/a[@title="2"]') 

und dies funktioniert gut verwenden.

+0

Während nicht das, was Sie gefragt, bei weitem die weniger schmerzhaft und genauere Wähler die URI in der 'href' verwenden lieber als das, was ist im Wesentlichen eine Präsentation Thema für die guillemet suchen; Also: '// a [contains (@href,"/page/")]/@ href' (vorausgesetzt, Sie wollten das eigentliche' href'; lassen Sie das '/ @ href' weg, um nur das Ziel' a'-Tag zu erhalten) –

Antwort

2

Zunächst ist Ihr Pfad falsch, weil Sie title Attribut verwenden, um zu entsprechen, das ist falsch, das Zeichen ist innerhalb text() nicht title. Diese XPath sollte funktionieren:

response.xpath(u'//a[./text()="\xbb"]') 
+0

Vor allem, danke für die Klärung, dass es die 'text()' sollte man übereinstimmen, nicht '@ title', die überall sonst in diesem verwendet wurde Frage. Als ein kleines bisschen Pedanterie braucht man den 'text()' nicht mit '. /' Zu qualifizieren, wie es impliziert wird, das 'a' durch die Verwendung der Array-Klammern zu sein. Um besonders vorsichtig zu sein, könnte man 'a [string (.) =" \ Xbb "]' Side-Step sagen, wenn sie das Guillemet in eine ' 'oder solche in der Zukunft (whitespace Bedenken beiseite, weil ich endlich haben) Zeichen hier :-)) –

+0

@eLRuLL danke. Ich habe nicht einmal bemerkt, dass dieses HTML-Tag keinen Titel hat, das Problem war, weil andere es hatten. – WebOrCode

0

Ich habe es nicht versucht zu laufen, aber Sie sollten das Dezimalsystem Einheit zum Auffinden der erweiterten Zeichen über XPath verwenden.

Für &raquo; sollten Sie &#187; verwenden, Sie XPath sollte wie sein

div[@class="wp-pagenavi"]/a[@title="&#187;"]' 

die komplette Grafik here für die Referenz.

Wenn es nicht funktioniert, können Sie für die Unicode character for &raquo; gehen, Zusätzlich können Sie diese post sehen, hoffe, dass dies Ihnen hilft.

+0

nicht funktioniert, ich habe das Gefühl, dass dies auch von Xpath Umsetzung in scrapy Rahmen – WebOrCode

Verwandte Themen