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

السؤال

نشر

كيفية حذف عنصر ابن child (عنصر فرعي) ضمن ملف، على سبيل المثال في الملف التالي:

"""
<!DOCTYPE>
<html>
<head><title>html</title></head>
<body>
<div id="x">
<p>
	This is child of div with id = "x".
	<span>Child of "P"</span>
</p>
<div>
Another Child of div with id = "x".
</div>
</div>	
<p>
aaadas
</p>					
</body>
</html>
"""

 

Recommended Posts

  • 0
نشر

يمكنك استخدام إحدى الدوال التالية:
decompose : يقوم بإزالة الوسم من شجرة مستند HTML المحدد، ثم يدمرها تماماً مع محتوياتها.
clear: تقوم بحذف الوسم من شجرة مستند HTML المحدد.

# استيراد المكتبة
from bs4 import BeautifulSoup
# المستند المراد تعديدله
htmlDoc ="""
<!DOCTYPE>
<html>
<head><title>html</title></head>
<body>
<div id="x">
<p>
	This is child of div with id = "x".
	<span>Child of "P"</span>
</p>
<div>
Another Child of div with id = "x".
</div>
</div>	
<p>
aaadas
</p>					
</body>
</html>
"""
# BeautifulSoup تحليل الملف  من خلال 
soup = BeautifulSoup(htmlDoc, 'html.parser')
# إيجاد الوسم 
e = soup.find('div')
# حذف العنصر الفرعي 
e.decompose()
print(e)
# <None></None>

في حال استخدام clear:

soup = BeautifulSoup(htmlDoc, 'html.parser')
# إيجاد الوسم 
e = soup.find('div')
# حذف العنصر الفرعي 
e.clear()
print(e)
# <div id="x"></div>

 

  • 0
نشر

يمكن أيضًا إستعمال التابع extract والذي يقوم بإستخراج العنصر من المستند:

from bs4 import BeautifulSoup

content = """<!DOCTYPE html>
<html>
    <head><title>html</title></head>
    <body>
        <div id="x">
            <p>
                This is child of div with id = "x".
                <span>Child of "P"</span>
            </p>
            <div>
                Another Child of div with id = "x".
            </div>
        </div>	
        <p>
            aaadas
        </p>					
    </body>
</html>
"""

soup = BeautifulSoup(content, features='lxml')
e = soup.select_one('div#x')    # تحديد العنصر من خلال محدد CSS

# إزالة العنصر من الصفحة
e.extract()

# المستند بعد إزالة العنصر منه
print(soup.prettify())

"""
<!DOCTYPE html>
<html>
 <head>
  <title>
   html
  </title>
 </head>
 <body>
  <p>
   aaadas
  </p>
 </body>
</html>
"""


# العنصر الذي تم إزالته
print(e.prettify())
"""
<div id="x">
 <p>
  This is child of div with id = "x".
  <span>
   Child of "P"
  </span>
 </p>
 <div>
  Another Child of div with id = "x".
 </div>
</div>
"""

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...