العثور على بطاقة الأم لسلسلة نصية مع ElementTree / lxml

StackOverflow https://stackoverflow.com/questions/1025129

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أحاول لاتخاذ سلسلة من النص، و "انتزاع" بقية النص في الفقرة / وثيقة من أتش تي أم أل.

وبلدي الحالي هو نهج يحاول العثور على "بطاقة الأم" من السلسلة في HTML والتي تم تحليلها مع lxml. (إذا كنت تعرف من طريقة أفضل لمعالجة هذه المشكلة، وأنا كلي آذان صاغية!)

وعلى سبيل المثال، ابحث في شجرة ل "STRING TEXT HERE" وعودة "ص" علامة. (لاحظ أنني لن أعرف التخطيط الدقيق للأتش تي أم أل مسبقا)

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

وشكرا لمساعدتكم!

هل كانت مفيدة؟

المحلول

وهذا هو وسيلة بسيطة للقيام بذلك مع ElementTree. أنها لا تتطلب إدخال HTML الخاص بك هو XML صالح (حتى لقد أضفت علامات نهاية المناسبة ل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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top