آموزش بیوتیفول سوپ

آنچه در این صفحه می خوانید:

معرفی Beautiful Soup

Beautiful Soup یک کتابخانه پایتون شامل مجموعه ای از توابع و متد ها است که به شما اجازه می دهد تا بسیاری از کارها را بدون نوشتن کد انجام دهید. Beautiful Soup برای پروژه های سریع مانند screen-scraping طراحی شده است.

Beautiful Soup یک کتابخانه پایتون برای استخراج داده ها از فایل های اچ تی ام ال (HTML) و اکس ام ال (XML) است. Beautiful Soup با تجزیه کننده دلخواه شما برای ارائه راه هایی برای ناوبری، جستجو و اصلاح درخت تجزیه کار می کند. معمولا Beautiful Soup موجب صرفه جویی در ساعت کاری برنامه نویسان می شود. این کتابخانه یک درخت تجزیه برای صفحات تجزیه شده ایجاد می کند که می تواند برای استخراج داده ها از HTML استفاده شود، که برای وب اسکرپینگ مفید است.

Beautiful Soup برای پایتون 2.7 و پایتون 3 در دسترس است.

ویژگی های Beautiful Soup

Beautiful Soup یک کتابخانه Python است که برای پروژه های سریع مانند scraping روی صفحات وب ساخته شده است. سه ویژگی آن را قدرتمند می سازد:

  • Beautiful Soup چند متد ساده و اصطلاحات Pythonic را برای ناوبری، جستجو و اصلاح یک درخت تجزیه فراهم می کند: یک ابزار برای تشخیص یک سند و استخراج هرآنچه که شما نیاز دارید. برای نوشتن یک اپلیکیشن، نیازی به کدنویسی زیاد نیست.
  • Beautiful Soup به طور خودکار اسناد ورودی به Unicode و اسناد خروجی را به UTF-8 تبدیل می کند. شما لازم نیست که نگران encoding باشید مگر اینکه سند encoding را مشخص نکند و Beautiful Soup نتواند آن را شناسایی کند. سپس شما فقط باید encoding اصلی را مشخص کنید.
  • Beautiful Soup در بالای تجزیه کننده های محبوب پایتون مانند lxml و html5lib قرار دارد و به شما این امکان را می دهد تا استراتژی های مختلف تجزیه یا سرعت تجارت را برای انعطاف پذیری امتحان کنید. Beautiful Soup هر چیزی را که به آن می دهید تجزیه می کند. می توانید به آن بگویید "تمام لینک ها را پیدا کن" یا "تمام لینک های کلاس externalLink را پیدا کن".
  • داده های با ارزش قفل شده موجود در وب سایت هایی که ضعیف طراحی شده اند قابل دسترسی هستند. انجام پروژه هایی که ساعت ها طول می کشد با Beautiful Soup در چند دقیقه انجام می شوند.

نحوه استفاده از Beautiful Soup

  1. درست بعد از نصب، می توانید استفاده از BeautifulSoup را شروع کنید.
  2. در ابتدای اسکریپت پایتون، کتابخانه را وارد کنید.
  3. حالا شما باید چیزی را به BeautifulSoup منتقل کنید تا یک آبجکت Soup ایجاد شود.
  4. این می تواند یک داکیومنت یا یک URL باشد.
  5. BeautifulSoup صفحه وب را برای شما واکشی نمی کند، شما باید خودتان این کار را انجام دهید.
  6. به همین دلیل از urllib2 در ترکیب با کتابخانه BeautifulSoup استفاده می شود.

مقایسه اسکرپی (Scrapy) و Beautiful Soup

Scrapy یک Web-spider یا فریمورک web scraper می باشد که به آن یک مسیر URL می دهید تا شروع به crawling کند. سپس می توانید مشخص کنید چه تعداد URL می خواهید crawl و fetch شوند. در واقع Scrapy یک فریمورک کامل برای web-scraping یا crawling است. اما Scrapy زمانیکه داده ها از جاوااسکریپت استخراج یا به صورت پویا بارگذاری می شوند دارای محدودیت هایی است که می توانیم با استفاده از بسته هایی مانند splash، سلنیوم و غیره بر آنها غلبه کنیم.

Beautiful Soup یک کتابخانه تجزیه کننده است که محتویات را از URL استخراج می کند و اجازه می دهد تا شما برخی از بخش های مهم را بدون هیچ زحمتی تجزیه کنید. فقط محتویات URL که شما انتخاب کرده اید را استخراج می کند و سپس آن را متوقف می کند. هیچ گاه کار crawl را انجام نمی دهد مگر اینکه به صورت دستی آن را در داخل یک حلقه بی نهایت با معیارهای خاص قرار دهید. Beautiful Soup یک کتابخانه پایتون برای استخراج داده ها از فایل های HTML و XML است که می توان زمانیکه داده ها از جاوااسکریپت استخراج یا به صورت پویا بارگذاری می شوند از آن به راحتی استفاده کرد.

به طور خلاصه با Beautiful Soup می توانید چیزی شبیه Scrapy را بسازید. Beautiful Soup یک کتابخانه است در حالی که Scrapy یک فریمورک کامل است. Scrapy با Beautiful Soup یکی از بهترین ترکیب هایی است که ما می توانیم برای scraping محتواهای استاتیک و پویا استفاده کنیم.

نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود