آموزش اصلاح درخت در Beautiful Soup 

4 سال پیش
5/5 - (1 امتیاز)

آموزش اصلاح درخت در Beautiful Soup 

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش اصلاح درخت در Beautiful Soup خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون

یکی از جنبه های مهم BeautifulSoup جستجو در درخت تجزیه است و به شما امکان می دهد متناسب با نیاز خود در سند وب تغییراتی ایجاد کنید. ما می توانیم خصوصیات تگ را با استفاده از ویژگی های آن مانندمتد .name ، .string یا .append  تغییر دهیم. به شما امکان می دهد با کمک متد های ()new_string.  و ()new_tag. برچسب ها و رشته های جدیدی را به تگ موجود اضافه کنید. روشهای دیگری نیز وجود دارد، مانند ()insert () ، .insert_before.  یا()insert_after. برای ایجاد تغییرات مختلف در سند HTML یا XML.

تغییر نام و مشخصات تگ ها

هنگامی که soup را ایجاد کردید، ایجاد تغییر مانند تغییر نام تگ، ایجاد تغییر در ویژگی های آن، افزودن ویژگی های جدید و حذف ویژگی ها آسان است.

اصلاح و افزودن ویژگی های جدید به شرح زیر است –

ویژگی ها به شرح زیر است –

 

اصلاح رشته

به راحتی می توانید ویژگی تگ string. را اصلاح کنید –

از بالا، می توانیم ببینیم که تگ حاوی تگ دیگری است ، داده ها و محتوای آنها جایگزین می شود.

()append

افزودن داده / محتویات جدید به تگ موجود با استفاده از متد ()tag.append است. شباهت زیادی به متد ()append در لیست پایتون دارد.

 

()NavigableString و ()new_tag. 

درصورتی که بخواهید رشته ای را به سندی اضافه کنید ، این کار با استفاده از ()append  یا توسط سازنده ()NavigableString به راحتی قابل انجام است –

توجه: اگر هنگام دسترسی به تابع ()NavigableString خطای نامی پیدا کردید، به شرح زیر است

NameError: name ‘NavigableString’ is not defined

فقط پوشه NavigableString را از بسته bs4 وارد کنید –

ما می توانیم خطای فوق را برطرف کنیم.

می توانید نظرات خود را به تگ موجود خود اضافه کنید یا می توانید برخی از زیر کلاس های دیگر NavigableString را اضافه کنید، فقط بسازنده را فراخوانی کنید.

 

افزودن یک تگ کاملاً جدید (که به تگ موجود اضافه نمی شود) با استفاده از متد Beautifulsoup inbuilt ، BeautifulSoup.new_tag – قابل انجام است –

فقط برای اولین آرگومان، نام تگ لازم است.

()insert

مشابه متد ()insert در لیست پایتون ، ()tag.insert  عنصر جدیدی را وارد می کند اما برخلاف ()tag.append ، عنصر جدید لزوماً در انتهای مطالب والدین خود قرار نمی گیرد. عنصر جدید را می توان در هر موقعیتی اضافه کرد.

()insert_before  و ()insert_after 

برای درج مقداری تگ یا رشته دقیقاً قبل از چیزی در درخت تجزیه  از ()insert_before  استفاده می کنیم –

 

به همین ترتیب برای درج مقداری تگ یا رشته دقیقاً بعد از چیزی در درخت تجزیه ، از ()insert_after استفاده کنید.

 

برای حذف محتوای یک تگ ، از ()tag.clear استفاده کنید –

 

 ()extract

برای حذف تگ یا رشته ها از درخت ، از ()PageElement.extract  استفاده کنید.

 

()decompose

()tag.decompose  یک نگ را از درخت حذف کرده و تمام محتوای آن را پاک می کند.

 

 

()Replace_with

همانطور که از نامش پیداست، تابع ()pageElement.replace_with تگ یا رشته قدیمی را با تگ یا رشته جدید در درخت جایگزین می کند –

در خروجی بالا، شما متوجه شده اید که ()zëvend_with تگ یا رشته ای را که جایگزین شده است برمی گرداند (مانند “Material” در مورد ما) ، بنابراین می توانید آن را بررسی کنید یا دوباره به قسمت دیگری از درخت اضافه کنید.

()wrap

()pageElement.wrap عنصری را در تگ تعیین شده شما محصور کرده و یک بسته بندی جدید را برمی گرداند –

 

 

()unwrap

()tag.unwrap درست در مقابل ()wrap  قرار دارد و هر آنچه درون آن تگ است را جایگزین می کند.

 

از بالا متوجه شده اید که مانند ()eplace_with(), unwrap  تگی را که جایگزین شده است برمی گرداند.

در زیر یک مثال دیگر از  ()unwrap برای درک بهتر آن وجود دارد –

()unwrap برای حذف نشانه گذاری مناسب است.

 

منبع.

لیست جلسات قبل آموزش Beautiful Soup در پایتون

  1. آموزش Beautiful Soup در پایتون
  2.  بررسی اجمالی Beautiful Soup در پایتون
  3. آموزش نصب Beautiful Soup
  4. آموزش Souping کردن صفحه در Beautiful Soup
  5. انواع اشیا beautiful soup 
  6. آموزش پیمایش توسط تگ ها در Beautiful Soup
  7. آموزش درخت جستجو در Beautiful soup 
5/5 - (1 امتیاز)
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه