وب اسکرپینگ با استفاده از پایتون و 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 محتواهای استاتیک و پویا استفاده کنیم.