Recherche de la balise parent d'une chaîne de texte avec ElementTree / lxml
-
06-07-2019 - |
Question
J'essaie de prendre une chaîne de texte et "extraire". le reste du texte dans le paragraphe / document à partir du code HTML.
Mon approche actuelle consiste à rechercher le "tag parent". de la chaîne dans le HTML qui a été analysé avec lxml. (Si vous connaissez un meilleur moyen de résoudre ce problème, je suis tout ouïe!)
Par exemple, recherchez dans l’arborescence " TEXT STRING HERE " et renvoyer le " p " étiquette. (notez que je ne saurai pas la disposition exacte du code HTML au préalable)
<html>
<head>
...
</head>
<body>
....
<div>
...
<p>TEXT STRING HERE ......</p>
...
</html>
Merci pour votre aide!
La solution
C’est un moyen simple de le faire avec ElementTree. Cela nécessite que votre entrée HTML soit du code XML valide (j'ai donc ajouté les balises de fin appropriées à votre code 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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow