- مهرداد حیدری
- 13 اردیبهشت, 1401
- 0 Comments
- 12 Secs Read
وب اسکرپینگ با پایتون
وب اسکرپینگ با پایتون یعنی چه؟
به چه دردی میخوره؟ یعنی تو دنیای وب چه کاربردی داره؟
چطور میتونم از کتابخانه های وب اسکرپینگ استفاده کنم؟
وب اسکرپینگ (web scraping) با پایتون روشی هست که میتونم هر اطلاعاتی که میخوام رو در کمترین زمان جمعآوری کنم تا بتونم در بعضی جاها (مثلاً کجا؟) ازشون استفاده کنم و حتی میتونم از وب اسکرپینگ کسب درآمد کنم.
حالا میگی چطوری؟ همراه لرن پایتون شو تا بتونی به کشفیات جالبی از وب اسکرپینگ برسی.
بعد از خوندن این مقاله و مقالههای مرتبط دیگه (که در انتهای مقاله هست جهت وارد شدن در مسیر وب اسکرپینگ با پایتون) بهراحتی میتونید داده و هر اطلاعاتی که بتونه نیازتون رو برطرف کنه از وبسایتها استخراج کنید و تو زمینه استخراج داده از سایتها با هیچ مشکلی مواجه نشید.حتی میتوانید ربات اینستاگرام و ربات واتس اپ بسازید.اگر هم میخوای حرفه ای بشی و از این حوزه درآمد داشته باشی این آموزش رو حتما ببین
فقط برای اینکه همسفر لرن پایتون تو این سفر پرهیجان باشید یه مقدمهای از پایتون باید بلد باشید که میتونید ویدئو آموزشی رایگان پایتون در یک ساعت را ببینید. (learnpythonn برای هر چیزی یه راه حلی داره تا همسفرش تو دستانداز نیفته.
کپی پیست کردن ممنوع!
قطعاً پیش اومده برای همه ما وقتی میخواهیم یک کتاب را با تمام جزئیات (قیمت، نویسنده و …) از اینترنت سرچ کنیم از روش قدیمی کپی پیست (copy & paste) که خیلی زمان بره استفاده میکنیم.
خب دوست عزیزم به نظرت این روش برای کسی که تو دنیای وب، اینترنت، کامپیوتر، بخصوص برنامهنویسی حرفی برای گفتن داره دور از انتظار نیست؟ خب هرچی باشه یه سروگردن از بقیه بالاتریم (اعتماد به نفسم منو کشته!) باید به دنبال دادههای ساختار یافته باشیم نه دادههایی که با کپی پیست بدست میاد (ساختار یافته نیست) پس دیگه روشهای قدمی پر.
میخوام برات یه خاطره از دوران دانشجوییم تعریف کنم؟ شنیدنش خالیازلطف نیست، بریم یه سفر کوتاه به سال 97 یه دانشجوی نرمافزار ترم 3 که همة دروس تئوری رو گذرونده و رسیده به پله آخر از مقطع ارشد مبحث شیرین و پردردسر پایاننامه با موضوع پردازش تصویر، مثل هر دانشجوی درس خونی شروع کردم به تحقیق و خوندن مقاله و گردآوری مطالب بالاخره استارت پروژه زده شد چه استارتی چه استادهایی بهبه (البته از لحاظ تیپی مدنظرم هست فک نکنی علمی میگم)
به پیشنهاد استادم وارد حوزه پایتون شدم چون با کتابخانههای پایتون راحتتر می تونستم شبیهسازی پروژه رو انجام بدم با پایتون دوستیمو شروع کردم و دوستی که تا به امروز رفیق فابریکم شده و به دلیل open source بودن و کتابخانههای متعددی که داره خیلی روش تونستم حساب کنم.
بالاخره سرتونو درد نیارم رسیدیم به اصل ماجرا خب اصل ماجرا چیه؟ دیتاست برای پروژه.
تو این زمینه کسی منو راهنمایی نکرده بود که چطوری میتونم دیتاست جمعآوری کنم خودم دست به کار شدم آستینارو زدم بالا و با هزار مکافات بهصورت دستی دیتا جمع کردم بماند که چقدر وسطای راه کم آوردم(هی روزگار). حالا به خودتون میگید چرا تو گوگل سرچ نکردم؟ نه دوست عزیز اینقدر هم که فکر میکنی ساده نیست هلو برو تو گلو نیست.حجم زیادی از داده میخواستم کم نبود.
بعد از آشنایی با وب اسکرپینگ با پایتون تازه متوجه شدم که چقدر راحت میتونستم با استفاده از کتابخانههای وب اسکرپینگ داده مورد نظرمو گردآوری کنم.
خب تا اینجا فکر کنم رشته کار دستتون اومده که وب اسکرپینگ با پایتون چقدر میتونه مفید باشه برای کسی که دنبال داده و اطلاعات از سایت است حالا میریم به بخش اصلی مقاله که چطوری میشه وب اسکرپینگ (web scraping) کرد و کتابخونه های (library) موردنیاز رو نصب کرد.
جالب هست بدانید که وب اسکرپینگ با پایتون همیشه قانونی نیست یعنی بدون اجازه ما نمیتونیم وب اسکرپینگ کنیم اول اجازه بعد استخراج اطلاعات از سایت، برای اجازه گرفتن هم در مروگر بعد از آدرس سایت این عبارت را تایپ میکنید (/robots.txt) اگر نتایج allow بود اونوقت اجازه صادره برو تو دل سایت و هر چی میخوای بردار.
همسفر عزیز یه نفس عمیق بکش چون سفر هیجانیمون از این بعد شروع میشه که میخوایم تختگاز بریم.
کتابخانههای وب اسکرپینگ :
قبل از اینکه دست به کد بشیم در ابتدای کار باید براساس نیازمون کتابخونههای وب اسکرپینگ با پایتون مورد نظرو انتخاب کنیم در زیر کتابخانههای وب اسکرپینگ و معرفی کردم که هرکدوم کابرد خاص خودشو داره با انتخاب آنها مرحله به مرحله پیش میریم ودر مقاله های جدا با هر کدوم بیشتر آشنا میشید.
Requests: با این کتابخونه میتونیم درخواست خودمونو به وبسایتها ارسال کنیم و پاسخمونو بگیریم در اصل داریم سایتی که میخواییم اسکرپینگ انجام بدیم رو فراخوانی میکنیم که برای استخراج آماده بشه.
Beautiful Soup : این نوع کتابخانه برای محتوای ایستا مورداستفاده قرار میگیرد. Html ,Xml
الان از خودتون میپرسید که محتوای ایستا یعنی چه؟ به این مساله واقف هستی که لرن پایتون تنهات نزاشته و نمیزاره ابهاماتی تو ذهنت بمونه بنابراین در مقاله مربوطش توضیحات بیشتر و میدیم.
Selenium: این نوع کتابخانه برای محتوای پویا مورداستفاده قرار میگیرد مانند اینستاگرام که در آن در هر لحظه در حال بوجود آمدن دادههای جدید است.
Web-Crawling: فریم ورکی بصورت open source است.
API: یک سری وبسایتها هستند که به کاربر اجازه اسکرپینگ نمیدهند حالا ما باید چیکار کنیم نگران نباش برای این مورد هم راهحل هست و اون راهحل استفاده از APIهای رسمی خود سایتها که با استفاده از آنها میتوانیم دادههای موردنیاز خودمان را جمع آوری کنیم.
یکی از سایتهایی که این کار رو انجام میده توییتر هست.
Regex: برای اینکه ما بتونیم الگوی موردنظر خودمونو از داخل دادههایی که استخراج کردیم در بیاریم از ابزار Regex استفاده میکنیم ما پترنها را داخلش تعریف میکنیم و بر اساس آن دادهها را استخراج میکنیم.
منتظرم نظرتونو در این باره بدونم خب کسی که از سفر برگشته حرفی برای گفتن داره نه؟؟؟؟
سفر یک روزه ما تموم شد البته نه تموم نشده برای علاقه مندان تو این حوزه مسیر یادگیری در زیر قرار دادیم که میتونن همراه ما مرحله به مرحله پیش بیان تا تبدیل به خزنده وب بشن پس با انتخاب مسیر بریم که بترکونیم در مراحل بعدی وارد مباحث عملی میشیم که براحتی میتونید خودتون با دانش خودتون داده جمع کنید. خیلی راحت و بی دردسر، حتما منتظرتون در سفرهای شگفت انگیز لرن پایتونی هستیم.
ما تنهاتون نمیزاریم شما هم تنهامون نزارید.
مسیر یادگیری وب اسکرپینگ با پایتون :
کتابخانه requests یکی از کتابخانه های بسیار پرکاربرد در پایتون هست که میتونیم با استفاده از اون به وب سایتها درخواست ارسال کنیم واقعیتش این کتابخونه شبیه مرورگر عمل میکنه چطوری درون مرورگر آدرس وارد میکنیم و وبسایت را میبینیم کتابخانه request هم عین همون کار و برامون انجام میده.
وب اسکرپینگ با Beautiful Soup :
اینترنت پره از داده و اطلاعاتی که هر شخصی بهش نیاز داره. پس تا تموم نشده بجنب که بریم جمعش کنیم .کتابخونه Beautiful Soup همونیه که ما میخواییم. اگه میخوای یاد بگیری که با این کتابخونه چطوری کار کنی رو لینکش کلیک کن.همین!
کار با داده های JSON در پایتون:
JSON یک فرمتی برای تبادل داده هست. وقتی تونستیم داده ها رو استخراج کنیم حالا نوبت به این مرحله میرسه که دادهها رو چطوری و کجا ذخیره کنم تا بتونم بهش دسترسی داشته باشم در این سفر شما یاد خواهید گرفت که چگونه با ماژول json داخلی پایتون کار کنید تا دادههای رو در قالب JSON سریال کنید.(دیگه بهتر از این چی میخوای؟)
در این مرحله نحوه خواندن و نوشتن داده ها در فایل های CSV را با استفاده از ماژول csv داخلی پایتون و کتابخانه پانداس آموزش می دهیم. پانداس هم یه کتابخونه پرکاربرد در پایتون هست.
وب اسکرپینگ با پایتون و سلنیوم:
در این آموزش با استفاده از سلنیوم با مرورگر بدون هد، اکسپورت دادههای اسکرپ شده به فایلهای CSV، و بستهبندی کد اسکرپینگ خود در کلاس پایتون آشنا میشید.