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

تغليف عنصر بوسم جديد باستخدام BeautifulSoup في بايثون

إياد أحمد

السؤال

كيف يمكننا القيام بتغليف عنصر ما، بوسم آخر، ففرضاً لدي المستند التالي:

<p> sometexthere </p>

وأريد أن يتم تغليفه بالوسمين <i> و <div>:

<div><p><i> sometexthere </i></p></div>

كيف نقوم بذلك؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك القيام بذلك من خلال استخدام الدالة wrap كما يلي:

# importing BeautifulSoup Module
from bs4 import BeautifulSoup
htmlDoc = '<p> sometexthere </p>'
# BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال 
soup = BeautifulSoup(htmlDoc, 'lxml')
# تنفيذ عملية تغليف حول السلسلة
soup.p.string.wrap(soup.new_tag("i"))
print(soup)
# <html><body><p><i> sometexthere </i></p></body></html>
# تنفيذ عملية تغليف حول الوسم
soup.p.wrap(soup.new_tag("div"))
print(soup)
# <html><body><div><p><i> sometexthere </i></p></div></body></html>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك أن تقوم بعمل عنصر جديد من خلال التابع new_tag ثم تقوم بإضافة العنصر العناصر الأبناء إليه، كالتالي:

from bs4 import BeautifulSoup
soup = BeautifulSoup('<p> sometexthere </p>', features='lxml')

# إنشاء العناصر
div_element = soup.new_tag('div', **{"class":"container"})  # يمكنك أن تضيف خصائص أيضًا من هنا
i_element = soup.new_tag('i')

# إحاطة النص بالعنصر i
soup.p.string.wrap(i_element)


# إضافة كل العناصر إلى العنصر div الذي قمنا بإنشائه
body_children = list(soup.body.children)
for child in body_children:
    div_element.append(child)

# إزالة كل العناصر من جسم الصفحة
soup.body.clear()

# إضافة العنصر div الذي يحتوي على كل العناصر إلى جسم الصفحة
soup.body.append(div_element)

print(soup.prettify())

"""
<html>
 <body>
  <div class="container">
   <p>
    <i>
     sometexthere
    </i>
   </p>
  </div>
 </body>
</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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...