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!

Était-ce utile?

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
scroll top