Holen Zeichenfolge abgestimmt html-tag mit Hilfe von xpath
Den html-code, der ist blind und Es enthält die Zeichenfolge "PREIS" in html. Dass teilweise string muss abgestimmt werden mit html-text.Wenn der text passt(teilweise übereinstimmung) mit Hilfe von xpath.Sollte es wieder die bestimmten html-Tags Weg.
Hinweis: ich brauche, dies zu automatisieren Logik für mehrere Standorte.Ich hätte zu verwenden, die Allgemeine Regel
(Für das Auffinden von "Preis",Holen Übergeordneten Tags)
Dies ist Beispiel:
html="""<div id = "price_id">
<span id = "id1"></span>
<div class="price_class">
<bold>
<strong>
<label>PRICE:</label> 125 Rs.
</bold>
</strong>
</br>
</br>
</div>"""
Ich verwendet lxml
from lxml.html.clean import Cleaner
cleaner =Cleaner(page_structure=False)
cl = cleaner.clean_html(html)
cleaned_html = fromstring(cl)
for element in cleaned_html:
if element.text == 'PRICE':
print "matched"
Wie es hätte geschrieben werden können mit Hilfe von Xpath-Ausdruck?
Ich nur die div-class-Pfad mit xpath-Ausdruck.
Auch Das problem ist, wenn ich suchen Sie die "PREIS:" - string.
Sollte ich haben, um die Eltern der gültigen tag, das "div" mit dem Klassennamen "price_class".
aber hier sollte ich haben, um überspringen oder entfernen Sie die unerwünschten tags wie schriftart,Fett,Kursiv,...
Könnten Sie bitte mir empfehlen, um die übergeordneten gültigen tag des gefundenen string?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
ancestor
Achse:Ausgabe:
EDIT: Mehr Allgemeine Lösung für die modifizierte Frage:
Gesucht wird ein element mit dem text "
PRICE:
" und wählen Sie dann die erste Vorfahr-skippingstrong
,bold
,italic
. Sie können weitere tags in die exclude-Liste.Statt eine exclude-Liste, können Sie nach der ersten gute Vorfahren (wie
div
,ul
etc):upper-case()
ist in XPath 2.0. Als Problemumgehung können Sie so etwas wie:translate(text(), "abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
Verwenden:
XPath ist eine Abfragesprache für XML-Dokumente. Als solche kann es nicht ändern, die Struktur eines XML-Dokuments. So zu tun, andere Sprache (das ist hosting XPath) verwendet werden.
XSLT ist die am besten geeignete Sprache für die Durchführung einer transformation von einem XML-Dokument, wie es speziell mit diesem Zweck.