• 0

هل يوجد مرشح للـ HTML في بايثون؟

أبحث عن وحدة أو طريقة معينة تُمكنني من حذف سمات HTML معينة من سلسلة نصية غير موجودة في القائمة، فهل يوجد شيء كهذا في لغة بايثون؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يوجد عدة طرق في لغة بايثون لتنظيف السلسلة النصية، فمثلا يمكنك استخدام BeautifulSoup وإنشاء قائمة بها السمات التي تريد حذفها لإنشاء دالة لتنفيذ ما تريده كما في المثال التالي:

from bs4 import BeautifulSoup

VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br']

def sanitize_html(value):

    soup = BeautifulSoup(value)

    for tag in soup.findAll(True):
        if tag.name not in VALID_TAGS:
            tag.hidden = True

    return soup.renderContents()

إذا أردت حذف محتويات السمات استبدل tag.hidden بـ tag.extract().
أو يمكنك استخدام دالة clean_html من وحدة lxml.html.clean حيث تملك العديد من الخيارات والتخصيصات.
مثال على استخدام هذه الدالة:

from lxml.html.clean import clean_html
print clean_html(html)

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن