Scrapy - Wählen Sie einen bestimmten Link basierend auf Text

8

Das sollte einfach sein, aber ich stecke fest.

%Vor%

Ich versuche Scrapy (Basespider) zu verwenden, um einen Link basierend auf seinem Link-Text auszuwählen:

%Vor%

Ich möchte zum Beispiel den Link der nächsten Seite auswählen, basierend auf der Tatsache, dass der Text "Link Text Next" ist. Irgendwelche Ideen?

    
hoof_hearted 27.08.2012, 15:37
quelle

3 Antworten

14

Verwenden Sie a[contains(text(),'Link Text Next')] :

%Vor%

Referenz: Dokumentation zum XPath enthält Funktion

PS. Dein Text Link Text Next hat am Ende ein Leerzeichen. Um zu vermeiden, dass dieser Platz im Code enthalten sein muss:

%Vor%

Ich denke% contains ist ein bisschen allgemeiner, aber immer noch spezifisch genug.

    
unutbu 27.08.2012, 15:44
quelle
4

Sie können den folgenden XPath-Ausdruck verwenden:

%Vor%

Damit werden die href Attribute des Links mit dem Text "Link Text Next" ausgewählt.

Siehe XPath-Zeichenfolgenfunktionen , wenn Sie mehr Kontrolle benötigen.

    
icecrime 27.08.2012 15:46
quelle
1

Ihr xpath wählt den href nicht den Text im a -Tag. Es sieht nicht von Ihrem Beispiel aus wie die href hat next drin, so dass Sie es nicht mit einem RE finden können.

    
Andrew Cox 27.08.2012 15:43
quelle

Tags und Links