آموزش درخت جستجو در Beautiful soup 

4 سال پیش
آموزش درخت جستجو در Beautiful soup
امتیاز دهید post

آموزش درخت جستجو در Beautiful soup 

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

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

متد های Beautifulsoup بسیاری وجود دارد که به ما امکان می دهد درخت تجزیه را جستجو کنیم.  متداول ترین متد ها ()find  و ()find_all هستند.

قبل از صحبت در مورد ()find  و ()find_all ، اجازه دهید چند نمونه از فیلترهای مختلفی را که می توانید به این متد ها منتقل کنید، مشاهده کنیم.

انواع فیلترها

ما فیلترهای مختلفی داریم که می توانیم آنها را به این متد ها انتقال دهیم و درک این فیلترها بسیار مهم است زیرا این فیلترها بارها و بارها در طول API جستجو استفاده می شوند. ما می توانیم از این فیلترها بر اساس نام تگ، ویژگی های آن، متن یک رشته یا مخلوط اینها استفاده کنیم.

یک رشته

یکی از ساده ترین انواع فیلتر، رشته است. عبور یک رشته به متد جستجو و Beautifulsoup یک مسابقه با آن رشته دقیق انجام می دهد.

در زیر کد، همه تگ های <p> در سند را پیدا خواهید کرد –

 

عبارت منظم

می توانید تمام تگ ها را با یک رشته / تگ مشخص شروع کنید. قبل از آن ما برای استفاده از عبارت منظم باید ماژول re را وارد کنیم.

 

لیست 

با تهیه لیستی می توانید چندین تگ را برای یافتن منتقل کنید. کد زیر همه تگ ها <b> و <pre> را پیدا می کند –

 

True

True تمام تگ هایی را که می تواند پیدا کند باز می گرداند، اما هیچ رشته ای به خودی خود وجود ندارد –

برای برگرداندن فقط تگ های سوپ فوق –

 

()find_all 

برای استخراج همه وقایع یک تگ خاص از پاسخ صفحه می توانید از find_all استفاده کنید –

نحو

 

اجازه دهید برخی از اطلاعات جالب از IMDB – “فیلم های دارای بالاترین امتیاز” در همه زمان ها را استخراج کنیم

 

می توانیم ببینیم find_all همه موارد مطابق با معیارهای جستجو را که تعریف می کنیم به ما می دهد. همه فیلترهایی که می توانیم با ()find_all استفاده کنیم  می توانند با ()find و سایر متدهای جستجو مانند ()find_parents یا ()find_siblings  نیز استفاده شوند.

()find

در بالا مشاهده کردیم، ()find_all  برای اسکن کل سند برای یافتن همه مطالب استفاده می شود اما موارد دیگر، شرط یافتن تنها یک نتیجه است. اگر می دانید که سند فقط حاوی یک تگ <body> است ، جستجوی کل سند اتلاف وقت است. یک راه این است که هر بار ()find_all  را با حد = 1 فراخوانی کنید در غیر این صورت می توانیم از روش ()find  برای انجام همان کار استفاده کنیم –

نحو

بنابراین در زیر دو روش مختلف خروجی یکسانی وجود دارد –

در خروجی های بالا، می توانیم ببینیم که متد ()find_all لیستی شامل یک مورد را برمی گرداند در حالی که متد ()find تنها نتیجه را برمی گرداند.

تفاوت دیگر بین روش ()find و ()find_all این است:

 

اگر روش ().pood.find_all  چیزی پیدا نکند، لیست خالی را برمی گرداند در حالیکه ()find هیچکدام را بر نمی گرداند

()find_parents و ()find_parent 

برخلاف روش های ()find_all و ()find  درخت که با عبور از درخت، با نگاه به فرزندان تگ، روش ()find_parents و ()find_parents  برعکس عمل می کنند، آنها درخت را به سمت بالا عبور می دهند و به والدین تگ (یا یک رشته) نگاه می کنند.

 

هشت روش مشابه دیگر نیز وجود دارد

 

متدهای ()find_next_siblings  و ()find_next_sibling تمام خواهر و برادرهای عنصری را که بعد از عنصر فعلی آمده اند تکرار می کنند.

متد های ()find_previous_siblings و ()find_previous_sibling تمام خواهر و برادرهایی را که قبل از عنصر فعلی قرار دارند تکرار خواهد کرد.

متدهای ()find_all_next  و ()find_next در تمام تگ ها و رشته هایی که بعد از عنصر فعلی آمده اند تکرار می شوند.

متدهای ()find_all_previous و ()find_previous در تمام تگ ها و رشته هایی که قبل از عنصر فعلی قرار دارند تکرار می شوند.

 

گزینشگرهای CSS

کتابخانه BeautifulSoup برای پشتیبانی از متداول ترین انتخاب کنندگان CSS. با کمک متد ()select می توانید عناصر را با استفاده از انتخابگرهای CSS جستجو کنید.

در اینجا چند نمونه آورده شده است –

 

منبع.

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

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

دیدگاه شما

بدون دیدگاه