اذهب إلى المحتوى

السؤال

نشر

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

Recommended Posts

  • 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)

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...