Frage

Ich versuche, einen Text-String zu nehmen, und „extrahiert“, um den Rest des Textes im Absatz / Dokument aus dem html.

Mein Strom Ansatz versucht, den „Eltern-Tag“ der Zeichenfolge in dem HTML-Code zu finden, die mit lxml analysiert wurden. (Wenn Sie einen besseren Weg kennt dieses Problem zu lösen, bin ich ganz Ohr!)

Zum Beispiel finden Sie in den Baum für „TEXT STRING HERE“ und gibt die „p“ -Tag. (Beachten Sie, dass ich nicht das genaue Layout der HTML vorher wissen)

<html>
<head>
...
</head>
<body>
.... 
<div>
...
<p>TEXT STRING HERE ......</p>
...
</html>

Vielen Dank für Ihre Hilfe!

War es hilfreich?

Lösung

Dies ist ein einfacher Weg, um es mit ElementTree zu tun. Es erfordert, dass Ihre HTML-Eingabe gilt XML (so habe ich die entsprechenden End-Tags zu Ihrem HTML hinzugefügt):

import elementtree.ElementTree as ET

html = """<html>
<head>
</head>
<body>
<div>
<p>TEXT STRING HERE ......</p> 
</div>
</body>
</html>"""

for e in ET.fromstring(html).getiterator():
    if e.text.find('TEXT STRING HERE') != -1:
        print "Found string %r, element = %r" % (e.text, e)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top