Lxml XPath position () funktioniert nicht

Ich habe versucht, eine Seite über XPath zu kratzen, aber ich konnte es nicht wie erwartet erwarten.

Die Seite ist wie,

<tag1> <tag2> .... <div id=article> <p> stuff1 </p> <p> stuff2 </p> <p> ...... </p> <p> stuff30 </p> 

Ich möchte stuff1 durch stuff30 als String extrahieren. Hier ist mein Python-Code-Snippet.

 import lxml.html import urllib.request html = urllib.request.urlopen('http://www.something.com/news/blah/').read() root = lxml.html.fromstring(html) content = root.xpath('string(//div[@id="article"]/p[position()=>1 and position()<=last()]/.)') 

Dieser Code hat nichts zurückgegeben.

Wenn ich von der position() Anweisung zum einzelnen Elementindex umschreibe, funktioniert es.

 content = root.xpath('string(//div[@id="article"]/p[25]/.)') 

Dieser Code gibt stuff25 korrekt zurück.

Ich will nicht nur für die Loipe laufen. Ich glaube, es gibt einen Weg, um meine Code-Arbeit mit position() , aber nicht sicher, was ist falsch in meinem Code.

One Solution collect form web for “Lxml XPath position () funktioniert nicht”

Das ist, weil Sie Position () => 1 haben, sollte Position ()> = 1 sein

 content = root.xpath('string(//div[@id="article"]/p[position()>=1 and position()<=last()]/.)') 

Wird den Inhalt zu stuff1 setzen.

  • Extrahieren von Tabellen aus einem DOCX Word Dokument in Python
  • Populäre Python-Liste mit Daten aus dem Befehl lxml xpath
  • Wie passe ich den Inhalt eines Elements in XPath (lxml) an?
  • Holen Sie den zweiten Elementtext mit XPath?
  • Wie kann ich HTML mit html5lib analysieren und das geparste HTML mit XPath abfragen?
  • Rekursive Scraping Craigslist mit Scrapy und Python 2.7
  • Entfernen von Leerzeichen und nicht bedruckbarem Zeichen in Python
  • Lxml xpath ignoriert nicht "& nbsp;"
  • Python xml query erhalten übergeordnet
  • Sortieren von XML-Dateien
  • Warum funktioniert xpath nicht bei der Verarbeitung eines XHTML-Dokuments mit lxml (in python)?
  • Python ist die beste Programmiersprache der Welt.