Trovare il tag parent di una stringa di testo con ElementTree / lxml
-
06-07-2019 - |
Domanda
Sto cercando di prendere una stringa di testo e " extract " il resto del testo nel paragrafo / documento dell'html.
Il mio attuale approccio is sta cercando di trovare il tag " parent " della stringa nell'html che è stata analizzata con lxml. (se conosci un modo migliore per affrontare questo problema, sono tutto orecchi!)
Ad esempio, cerca nell'albero " STRUMENTO DI TESTO QUI " e restituisci il messaggio " p " etichetta. (nota che non saprò in anticipo l'esatto layout dell'html)
<html>
<head>
...
</head>
<body>
....
<div>
...
<p>TEXT STRING HERE ......</p>
...
</html>
Grazie per l'aiuto!
Soluzione
Questo è un modo semplice per farlo con ElementTree. Richiede che il tuo input HTML sia un XML valido (quindi ho aggiunto i tag end appropriati al tuo HTML):
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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow