وب اسکرپینگ با استفاده از پایتون و Beautiful Soup

وب اسکرپینگ با استفاده از پایتون و Beautiful Soup

در ابتدا، کار با یک صفحه وب دارای HTML خیلی پایه‌ای آغاز می‌شود. سپس، چگونگی انجام وب اسکرپینگ روی صفحات وب جهان واقعی نشان داده خواهد شد. اولین چیزی که برای اسکرپ کردن در یک صفحه وب مورد نیاز است، دانلود کردن آن صفحه است. می‌توان این کار را با استفاده از کتابخانه پایتون Requests (+) انجام داد.

کتابخانه Requests یک درخواست Get به وب سرور ارسال می‌کند که محتوای HTML صفحه وب مورد نظر را برای کاربر دانلود می‌کند. انواع گوناگونی از درخواست‌ها وجود دارد که می توان با استفاده از کتابخانه Requests انجام داد و GET تنها یکی از آن‌ها است. اکنون تلاش می‌شود تا یک صفحه وب‌سایت ساده از این آدرس با روش بیان شده دانلود شود. ابتدا، این صفحه با متد requests.get دانلود می‌شود.

مقایسه Scrapy و Beautiful Soup

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

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

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

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

Scrapy با Beautiful Soup یکی از بهترین ترکیب هایی است که ما می توانیم برای scraping محتواهای استاتیک و پویا استفاده کنیم.

معرفی و آموزش Scrapy

معرفی و آموزش Scrapy

Web scraping یک تکنیک برای جمع آوری داده ها یا اطلاعات در صفحات وب است. Scrapy یکی از محبوب ترین فریمورک های Web scraping است که در پایتون نوشته شده است و از Twisted، موتور شبکه ی Python و lxml، یک تجزیه کننده XML به علاوه ی HTML پایتون استفاده می کند.

Scrapy چیست؟

Scrapy یک فریمورک web crawling سریع و متن باز است که با زبان برنامه نویسی Python نوشته شده است که برای استخراج داده ها از صفحه وب با کمک selector ها بر اساس XPath استفاده می شود.

Scrapy برای اولین بار در تاریخ ۲۶ ژوئن ۲۰۰۸ تحت مجوز BSD و نسخه ۱٫۰ در ژوئن ۲۰۱۵ منتشر شد.

چرا باید از Scrapy استفاده کنیم؟

  1. ساخت و مقیاس کردن پروژه های بزرگ crawling
  2. دارای یک مکانیزم ساخته شده به نام Selectors، برای استخراج داده ها از وب سایت ها
  3. مدیریت سریع و غیر هم زمان درخواست ها
  4. تنظیم خودکار سرعت crawling با استفاده از مکانیزم خودکار
  5. تضمین قابلیت دسترسی برای توسعه دهندگان

ویژگی های Scrapy

  • متن باز و رایگان
  • تولید اکسپورت های فید با فرمت های JSON، CSV و XML
  • پشتیبانی از انتخاب و استخراج داده ها از منابع با XPath یا عبارت های CSS
  • Scrapy مبتنی بر crawler، اجازه می دهد اطلاعات را از صفحات وب به طور خودکار استخراج کند

مزایای Scrapy

Scrapy به راحتی قابل گسترش، سریع و قدرتمند است.
یک فریمورک اپلیکیشن cross-platform (ویندوز، لینوکس، سیستم عامل مک و BSD)
درخواست های Scrapy زمان بندی شده و به صورت غیرهمزمان پردازش می شوند.
Scrapy با سرویس داخلی به نام Scrapyd می آید که اجازه می دهد پروژه های خود را آپلود و Spider ها را با استفاده از سرویس وب JSON کنترل کند.
Scrap کردن هر وب سایتی امکان پذیر می باشد، گرچه آن وب سایت API برای دسترسی به داده های خام نداشته باشد.

معایب Scrapy

Scrapy فقط برای پایتون ۲٫۷ به بالا است.
نصب آن برای سیستم عامل های مختلف متفاوت است.

مقایسه Scrapy و Beautiful Soup

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

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

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

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

Scrapy با Beautiful Soup یکی از بهترین ترکیب هایی است که ما می توانیم برای scraping محتواهای استاتیک و پویا استفاده کنیم.

استخراج خزیدن و آنالیز داده ها در وبسایت ها با برنامه نویسی پایتون