در این مقاله قصد داریم برخی از ابزارهای جمعآوری و استخراج اطلاعات از سطح وب در زبان برنامهنویسی پایتون که اصطلاحاً Scraper یا Crawler نامیده میشوند را مورد بررسی قرار دهیم.
اگرچه امروزه یکسری نرمافزار به بازار عرضه شدهاند که صرفاً با چند کلیک چنین کاری را به سادگی انجام میدهند، اما این در حالی است که اگر بخواهیم این کار را به صورت کاملاً حرفهای انجام دهیم، برای انجام صحیح این عملیات نیاز به کمی کدنویسی خواهیم داشت (البته به خاطر داشته باشید که در حین استفاده از این لایبرریها باید به قوانین کپیرایت سایتها مراجعه نمایید چرا که خیلی از آنها اجازهٔ این کار را نمیدهند.) اینکه چگونه این کار را انجام میدهید به خودتان بستگی دارد، اما ابزارها و لایبرریهای بسیاری برای جمعآوری اطلاعات از سطح وب برای زبان برنامهنویسی پایتون به بازار عرضه شدهاند که به سادگی میتوان آنها را مورد استفاده قرار داد که در ادامه برخی از آنها را مورد بررسی قرار خواهیم داد.
Pyspider
این ابزار اپنسورس یک Crawler است که با استفاده از آن میتوان به صورت همزمان چندین سایت را به صورت جداگانه مورد بررسی قرار داد. این ابزار گزینههای بسیاری برای شخصیسازی دارد از آن جمله میتوان به چندین دیتابیس بکاند که با هم میتوانند کار کنند اشاره کرد. همچنین چندین ویژگی دیگر در اختیار دولوپرها قرار دارد که به صورت دستی قابلتنظیم هستند مانند اولویتبندی، بازپردازش صفحاتی که عملیاتشان موفقیتآمیز نبوده است، بررسی صفحات بر مبنای عمر صفحه، تاریخ انتشار و دیگر موارد.
Pyspider از هر دو ورژن پایتون پشتیبانی میکند و برای افزایش سرعت کارتان میتوانید از چندین ابزار Crawling در یک فرمت پشتیبانی شده به همراه این ابزار استفاده کنید. کاربرد مقدماتی Pyspider به خوبی مستندسازی شده و میتوانید آنها را به همراه مثالهایی که در مستندات آمده بررسی و مطالعه کنید (Pyspider که تحت لایسنس Apache 2 عرضه شده است، کماکان به طور فعال در گیتهاب در حال توسعه است و دولوپرهای بسیاری در حال توسعۀ آن هستند.)
MechanicalSoup
این لایبرری اپنسورس پایتون بر پایه لایبرری معروف Beautiful Soup ساخته شده است که به منظور پردازش سینتکس زبان HTML نوشته شده است. چنانچه نیاز شما به جمعآوری اطلاعات نسبتاً ساده است و میخواهید که فقط چند فیلد ساده را بررسی کرده و یا متن خاصی را هدف قرار دهید و یا اینکه نمیخواهید دست به کدنویسی کرولر اختصاصی خود برای این کار بزنید، MechanicalSoup ابزار مناسبی است.
Scrapy
این ابزار اپنسورس علاوه بر استخراج، تجزیه و تحلیل اطلاعات سطح وب میتواند به راحتی دادههایی را که در فرمتهای مختلفی مانند JSON یا CSV ذخیره شدهاند را استخراج کند و این دادهها را در هر دیتابیسی که بخواهید ذخیره کند. Scrapy همچنین ابزارهای از پیش تعریف شدهٔ دیگری نیز دارا است که به شخصیسازی عملیات کمک میکنند که هر کدام کار خاصی را انجام میدهند که از جملهٔ این کارها میتوان به مدیریت کوکیها و محدود کردن عمق بررسی اطلاعات اشاره کرد (اگر با برنامهنویسی و کدنویسی راحت نیستید، میتوانید از رابط کاربری بصری Portia استفاده کنید که کار با این ابزار را راحتتر میکند.)
علاوه بر ابزارهای فوقالذکر، لایبرریهای کاربردی دیگری نیز جهت Scrap و Crawl کردن وبسایتها در اختیار دولوپرها قرار دارد که در ادامه برخی از مهمترین آنها را مورد بررسی قرار خواهیم داد:
Demiurge
این میکروفریمورک که از هر دو ورژن پایتون 2 و 3 پشتیبانی میکند، یکی دیگر از کاندیدهای بالقوه علاقمندان به این حوزه است.
Feedparser
این ابزار میتواند به دولوپرها کمک کند تا اطلاعات RSS سایتها را استخراج کنند.
Lassie
این ابزار اپنسورس امکانی را در اختیار دولوپرها قرار میدهد تا بتوانند محتوای اصلی مانند توضیحات، عنوان، کلمات کلیدی و یا لیستی از تصاویر موجود در وبسایتها را استخراج کنند.
RoboBrowser
این لایبرری برای پایتون 2 و 3 عرضه شده است که این امکان را به شما میدهد تا علاوه بر استخراج دیتای صفحه، روی لینکها و دکمهها نیز کلیک کنید!