ویرگول
ورودثبت نام
امید حدیدی
امید حدیدی
خواندن ۵ دقیقه·۳ سال پیش

نقطه صفر طراحی خزشگر وب با پایتون

دوستای عزیزم سلام. از اینکه به سایت من سر زدید و این مقاله رو میخونید خیلی خوشحالم.

توی این مقاله قراره تا با هم دیگه اولین قدم برای پادگیری طراحی خرشگرها رو برداریم و با پیش نیازهای اون آشنا بشیم، اینکه چه ابزارهایی رو لازم داریم و از چه کتابخونه هایی باید استفاده کنیم تا یک خزشگر بسازیم.

اما قبل از اینکه ابزارها رو معرفی کنیم بیاید تا باهم ببینیم خزشگرها اصلا چی هستن و به چه دردی میخورن.

خزشگر وب چیست؟

خزشگرها رباتهایی هستند که به صورت خودکار به صفحات وب رفته و اطلاعات موجود در اون رو برسی کرده و نتیجه رو به ما نمایش میدن. یعنی چی؟

فرض کنید که ما نیاز داریم تا قیمت یک محصول رو از سرتاسر ایران جمع آوری کنیم و مثل سایت ایمالز بیام یک بازه قیمتی از کمترین قیمت به بیشترین قیمت رو به کاربرامون نمایش بدیم.

قائدتا این که بخواید به تک تک سایتهای ایرانی برید و بعد قیمتش رو بردارید و داخل سایت خودتون قرار بدید کار مسخره و سختیه پس چیکار میکنیم؟ اینجاست که خزشگرهای به کمک ما میان.

خزشگرها با استفاده از کدهایی که ما براشون نوشتیم درون صفحات وب میگردن و المانهایی رو که ما براشون مشخص کردیم رو پیدا و ذخیره سازی میکنن تا ما بتونیم از اون داده ها برای استفاده خودمون بهره ببریم.

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

خوب حالا که با معنای خزشگر آشنا شدید بیاید تا کمی جلوتر بریم.


چطور یک خزشگر وب بسازیم؟

برای شروع کار و طراحی و ساخت یک خزشگر نیاز به ابزارها و پیشنیازهایی داریم، مثل هر سازه دیگه ای که باید ابزار ساختش رو از قبل آماده کنیم این سازه ما هم از قائده جدا نیست ?

اما این رو بدونید که اولین و مهمترین پیش نیاز طراحی خزشگرهای وب آشنایی حداقلی با یکی از زبانهای برنامه نویسی هست ( که اگر پایتون، جاوااسکریپت یا PHP باشه که چه بهتری ).

توی این مقاله من اینطور در نظر گرفتم که شما حداقل آشنایی با زبان پایتون دارید و بعد از گذروندن یک دوره آموزشی مبانی برنامه نویسی و مقدماتی پایتون اینجا هستید و دارید این مقاله رو میخونید پس آماده حرکت بشید.

پیش نیازهای طراحی یک خزشگر وب با پایتون

کتابخونه Requests


خوب اولین پیش نیاز برای خزشگرها ارتباط با اینترنت و دریافت اطلاعات از صفحات وب هست. در پایتون کتابخونه requests به شما این امکان رو میده تا بتونید درخواستهای خودتون رو به سمت سرور بفرستید و نتیجه اون رو ببینید و با استفاده از اون نتیجه شروع کنید به کنکاش کردن توی المانهای اون صفحه.

این کتابخونه به صورت پیش فرض توی پایتون ۳.۸ ( اونی که من دارم استفاده میکن ) نصب بود اما اگه برای شما نصب نیست میتونید با استفاده از دستور زیر اون رو برای استفاده کردن آماده کنید.

pip install requests

کتابخونه Pandas


این کتابخونه یکی از بهترین کتابخونه ها برای آنالیز و مشاهده کردن و حتی دسته بندی کردن اطلاعات و دیتاهاست. با استفاده از این کتابخونه قدرتمند شما میتونید راحتتر دیتاهای دریافتی خودتون از صفحات وب رو آنالیز کنید و با انواع مختلفی از اون دیتاها خروجی بگیرید ( به عنوان مثال میتونید تمامی دیتا ها موجود توی یک صفحه رو با این کتابخونه توی یک فایل اکسل قرار بدید ).

این کتابخونه کارهای خیلی زیادی میتونه انجام بده که توی این لینک میتونید بیشتر در موردش بخونید.

این کاتبخونه به صورت پیشفرض نصب نبود و من با این دستور اون رو برای استفاده کردن نصب کردم

pip install pandas

کتابخونه Beautifulsoup


برای ساخت یک خزشگر شما نیاز به یک ابزار یا یک کتابخونه دارید که با استفاده از اون بتونید المانهای موجود توی صفحات رو به صورت مرتب شده و دسته بندی شده بخونید و راحت تر بتونید المانهای خودتون رو پیدا کنید تا وقت کمتری از شما گرفته بشه. کتابخونه Beautifulsoup این کمک رو به شما میکنه که توی المانهای موجود در صفحه وب جستجو کنید و راحتتر و سریعتر به نتیجه برسید.

در مورد این کتابخونه هم میتونید توی این لینک بیشتر بخونید و با استفاده از دستور این پایین اون رو نصب کنید.

pip install beautifulsoup4

کتابخونه Scrapy


خوب اگه کمی تنبلی کنید و دنبال یک کتابخونه باشید که کار شما رو سریعتر کنه و راحتر هم بتونید با اون داده های رو آنالیز بکنید این کتابخونه تا حد زیادی نیاز شما رو براورده میکنه چون مختصری از همه ی کتابخونه های بالا رو توی خودش داره و با استفاده از اون میتونید راحت تر یک صفحه رو آنالیز کنید. این کتابخونه محدودیت های زیادی رو برداشته و دست شما رو برای آنالیز بهتر و دقیق تر دیتاهای یک صفحه وب باز تر میکنه.

پیشنهاد میکنم که در مورد این کتابخونه خودتون برید بیشتر بخونید و حتما حتما دو تا دوره آمورشی اون رو هم حتما بخونید.

این کتابخونه هم با استفاده از دستور پایین نصب میشه و میتونید به راحتی ازش استفاده کنید.

pip install scrapy

کتابخونه Seleniem : رفع محدودیت جاواسکریپت


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

پی عملا شما نمیتونید از دیتاهای موجود در اون سایتها استفاده کنید. اما راه حل چیه ؟ در یک کلام Seleniem

کتابخونه Seleniem به شما این امکان رو میده که با استفاده از درایور مرورگر صفحه وب رو دریافت کنید. بعنی چی؟ اساس کار Seleniem به این صورت هست که شما درایور مرورگ خودتون مثل کرومیوم رو دانلود و نصب میکنید و بعد از نصب بجای استفاده از کتابخونه response با استفاده از Seleniem درخواست خودتون رو به سرور میفرستید.

این کتابخونه برای شما یک صفحه مرورگر جدید ایجاد میکنه و درون اون دیتاهای یک صفحه رو لود میکنه زمانی که تمامی ریکوئست ها به پایان رسید این کتابخونه هم تب جدید مرورگر رو میبنده و دیتای کامل رو در خدمت شما قرار میده برای استفاده کردن ( به همین راحتی به همین خوشمزگی )

درباره این کتابخونه حتما بیشتر بخونید، میتونید رو این لینک برای مشاهده بیشتر کلیک کنید. همچنین با استفاده از دستور زیر سلنیوم رو هم آماده کنید تا بریم برای ساخت یک خزشگر خوشگل و گوگولی.

pip install selenium

خیله خوب امیدوارم که این مقاله به شما کمک کرده باشه تا راحت تر بتونید تصمیم به یادگیری بگیرید و سریعتر پیشرفت کنید. از اونجایی که برنامه نویسی روز بروز جلوتر میره و بروزتر میشه اگه این مقاله کم و کاستی داره خوشحال میشم تا توی کامنت ها من رو هم راهنمایی کنید تا بتونم راحت تر برنامه نویسی کنم.

ممنون که وقت گذاشتی دوست من ; )

پیش نیازهای طراحی یک خزشگر وب با پایتوننقطه صفر طراحی خزشگر وب با پایتونخزشگر وب چیست؟
یه برنامه نویس پرتلاش و جستجوگر. عاشق برنامه نویسی و یادگیری چیزای جدید
شاید از این پست‌ها خوشتان بیاید