تا کراول میشه کرد نگو دیتا نداریم!‍؟

همه ما برای هر تصمیمی داخل محصول نیاز به دیتا داریم تا بدونیم کجا باید بریم و یا جایی که داریم می‌ریم درسته یا نه. اگه دیتا از محصول خودمون داشته باشیم که مشکلی وجود نداره، از همون می فهمیم که به سمت درست بریم. اما وقتی دیتا نداریم چیکار باید بکنیم؟ باید با یک سری دیتای ضمنی و غیر مستند جلو بریم؟ قطعا نه. اینجاست که کراول(crawl) به کمک شما میاد.هزینه‌های اینکار چقدره و اعتبارش به چیه؟برای هر موضوع دقت و اعتبار این کار متفاوته. مثلا اگر می‌خواید یه محصول برای معاملات خونه (اجاره، خرید و ...) توسعه بدید و نیاز به دیتایی دارید که ندارید. وجود محصولات مشابه (مثل دیوار) در این حوزه، هم دقت کار شمارو بالا میبره هم اعتباری می‌بخشه به دیتایی که می‌خواید بدست بیارید.فرایندش چطوریه؟این کار سه مرحله داره، گرفتن اطلاعات، دسته‌بندی اونها و در آخر استفاده ازشون.پیش‌نیازهای این کار البته داشتن دانش کاربردی از یک زبان برنامه‌نویسی(مثلا python)،کمی دیتابیس(مثلا postgres) و مقداری هم از یک ابزار مصورسازی(مثلا metabase).گرفتن اطلاعاتشما میدونی اطلاعات کجا نشسته، میتونی اونارو بخونی. پس میتونی همه اطلاعاتی که نیاز داری رو بسپاری به یه ماشین تا استخراج کنه برات. تقریبا با هر زبون برنامه‌نویسی‌ای میشه ولی خب پر استفاده‌ترین زبونی که من دیدم برای اینکار پایتونه. سریع نوشته میشه و با یه سری کانفیگ به اندازه کافی سریع هم اجرا میشه.چون قصد ندارم آموزش پایتون و کراول کردن بدم میتونم مقاله مرتبط که توی ویرگول دیدم رو براتون بزارم اینجا تا خواستید برید بیآموزید. https://virgool.io/@fhot707/%D8%AF%D9%88%D8%B1%D9%87-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%85%D8%AD%D9%88%D8%B1-crawl-%D8%AE%D8%B2%D8%B4-%D8%AF%D8%B1-%D9%88%D8%A8-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%82%D8%B3%D9%85%D8%AA1-kjxppo4ylhy7 این مرحله صرفا گرفتن اطلاعاته، توی این مرحله هنوز هیچ استفاده‌ای نمیتونید بکنید از دیتاهایی که جمع کردید.نکته: حواستون باشه که دیتا رو به شکل درستی بگیرید که وقتی می‌خواید دسته‌بندیش بکنید به مشکل نخورید.فوت کوزه‌گری: یادتون بمونه کمال‌گرا نباشید :)دسته‌بندی اطلاعات حالا وقتشه اطلاعاتتون رو بریزید توی دیتابیس‌تون به همون قالب و چارچوبی که می‌خواید ازش استفاده کنید. حواستون باشه اینجا که اگه دیتارو به شکل اشتباهی وارد کنید، موقع پردازش کردنش یکم اذیت می‌شید. مثلا اگر داخل دیتاهاتون قیمت وجود داره و برای شما هم این قیمت اهمیت زیادی داره، حتما اون رو به صورت عدد بریزید داخل دیتابیس. شاید بگید این که بدیهیه، بله این بدیهی بود ولی بقیه اطلاعات اینقدر بدیهی نیست و اگر مقدار اطلاعات‌تون که گرفتید زیاد باشه، هزینه زمانی زیادی ازتون می‌گیره.من به شخصه معمولا از دیتابیس postgres خودم استفاده میکنم، اطلاعات رو توش می‌ریزم و شروع می‌کنم به کوئری زدن. اما روش روتین‌ام برای شرکت‌ها اینجوریه که یدونه ابرک از ابراروان میگیرم و یه دیتابیس سرپایی توش بالا میارم( این یکم ازتون زمان میگیره اگه بار اولتون باشه و از داکر هم استفاده نکنید) اما اگر اصلا علاقه‌ای به سروکله زدن با سرور ندارید، میتونید از سرویس‌های ابری مثل لیارا استفاده بکنید. اما در کل حواستون باشه که دارید از هر سرویسی استفاده میکنید‌ pay as you go باشه سرویس که خرج الکی براتون در نیاد(معمولا با بالاترین منابع با حداکثر 10 هزارتومن کار جمع شده اما اگه یه سرور کامل بخواید سفارش بدید با حداقل منابع اختصاصی ممکنه 160هزارتومن دربیاد) https://docs.liara.ir/databases/postgresql/install https://www.arvancloud.com/fa/products/cloud-computing اصرار من برای استفاده از سرور بخاطر این هستش که به اشتراک‌گذاری اطلاعات با ادما توی سرور خیلی راحت‌تره. مخصوصا اگر اونا باهاتون می‌جنگند و مجبورید اثبات کنید هر کلمه‌تون رو :)مصورسازی وقتی اطلاعات رو توی دیتابیس ریختید حالا موقع اینه که با دیتاها بازی کنید. من شخصا از متابیس(metabase) برای اینکار استفاده میکنم. با کوئری اطلاعاتی که میخام رو بدست میارم و با مصور کردنشون و ساختن داشبردهای مختلف، با بقیه این اطلاعات رو به اشتراک میزارم. سوالاتی که زیاد پرسیده شدهچندتا از سوالاتی که به صورت کلی توی این کار پیش میاد براتون رو می‌نویسماین دیتاها به چه دردی می‌خوره؟اینکه شما چه اطلاعاتی نیاز دارید کاملا به موضوع‌تون مرتبطه. شما یه موقع می‌خواید با این اطلاعات به حجم بازارتون برسید، یه موقع فقط دارید ابتدای مسیر خودتون رو پیدا می‌کنید. دیتا که باشه خودتون متوجه می‌شید که چه استفاده‌ای ازش بکنید. این کار خیلی زمان بره!هر کاری برای بار اول زمان‌بره. شاید بار اول یک هفته زمان ببره اما بار پنجم شیشم کمتر از یک نصف روز زمان خواهد برد. چون شما دیگه فقط دغدغه‌ات این هستش که چه اطلاعاتی جمع کنم وگرنه کراول و ریختن توی دیتابیس که چارخط کده.وظیفه من این‌کار نیست چرا باید انجامش بدم؟خیلی وقت‌ها نیاز شما قانع کردن طرف مقابل‌تونه. شاید وظیفه‌تون نباشه ولی این نیاز رو می‌بینید که دست به کارهایی بزنید که به چیزی که می‌خواید برسید. پس بهتره با دیتا دهن بگید راه درست از کدوم سمت هستش.این کارها برای یه برنامه‌نویسه نه برای من!خیلی جدی بگم، هیچ برنامه‌نویسی این کار رو وظیفه‌اش نمی‌دونه و انجام نمی‌ده تا وقتی که مشکلش چیزی باشه جز برنامه‌نویسی. شما باید بدونید چه اطلاعاتی نیاز دارید و به چی می‌خواید برسید. تایپ کردن که هنر نیست :)در آخر هم بگم، این‌کار اصلا ثابت نیست و هربار که انجام می‌دید با بار قبلی فرق داره. اگر سوالی داشتید خوش‌حال می‌شم بتونم جواب بدم =)