وب اسکرپینگ (web scraping) فرایندی است که با استفاده از ابزار یا کتابخانه های خاص زبان های برنامه نویسی، اجازه می دهد تا بتوانیم یک صفحه وب را باز کنیم و بخوانیم و سپس به تگ های html درون آن صفحه و قادتا مقادیر یا محتوای مربوط به هر تگ دسترسی داشته باشیم، پس می توانیم وب اسکرپینگ را روشی برای استخراج داده های وب بدانیم. در منابع مختلف که در مورد وب اسکرپینگ صحبت می کنند از نام های معادلی برای واژه و مفهوم web scraping استفاده شده اند که از جمله آنها می توانیم به Web Data Extractors یا Data Harvesters یا Crawling Tools یا Web Content Mining Tools اشاره کنیم.

بنابراین وب اسکرپینگ فرایندی است که ابتدا یک یا چند صفحه وب را که توسط URL آن صفحه قابل دسترسی است را باز کرده و محتوای آن که شامل تگ های html می شود را می خوانیم و سپس بر اساس نیاز به محتوای هر تگ دسترسی پیدا می کنیم. به طور مثال می خواهیم تصاویر یک صفحه اینستاگرام را دانلود کنیم برای این منظور باید به تگ img و قادتا مقدار خصوصیت src تگ های img دسترسی داشته باشیم. ممکن است بخواهیم محتوای یک صفحه یا چندین ویکی پدیا را بخوانیم و سپس به دنبال وازه هایی بگردیم که بیشترین تکرار را داشته اند. برای این منظور باید تگ های p (یا پاراگراف یا Paragraph) را بدست آوریم.

اهمیت و مشکل های پیش روی استخراج داده ها

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

دو فرمت داده های json (یا javaScript object notation) و xml (یا extensible markup language)، فرمت هایی هستند که از آنها می توان مستقل از پلتفرم (سیستم عامل) و مستقل از زبان برنامه نویسی (جاوا، سی شارپ، پایتون، روبی، سی، سی پلاس پلاس، جاوا اسکریپت، سویفت و غیره) برای تبادل اطلاعات استفاده کرد.

به طور مثال وب سایتی که بر روی داده های هواشناسی کار می کند، داده های فعلی وضعیت آب و هوا و داده های سابقه و تاریخچه وضعیت آب و هوا را در دسترس عموم قرار می دهند. احتمالا و به صورت متداول، داده ها از طریق api های (application programming interface) به فرمت json قابل دسترسی هستند. بنابراین شما به عنوان یک برنامه نویس می توانید با توجه به قابلیت های زبان مورد استفاده خود از این داده ها استفاده کنید.

html زبان نشانه گذاری است که با استفاده از تگ ها (tags) امکان ایجاد صفحه های وب و انتشار محتوای مختلفی مانند متن ها، تصاویر، ویدیوها، پی دی اف (pdf) و غیره را می دهد. بنابراین صفحه های وب مجموعه انبوهی از داده ها را در خود دارند که با استخراج و پردازش آنها می توان به اطلاع های مفیدی دست یافت. اما مشکلی که وجود دارد این است که صفحه های وب برای ماشین ها قابل درک و فهم و پردازش نیستند بنابراین باید از روش و ابزار متفاوتی برای استخراج داده های وب استفاده کرد.

به طور کلی داده ها اهمیت بسیاری دارند زیرا هسته و محور پیش بینی ها، مصور سازی و تجزیه و تحلیل ها بر اساس وجود داده های کافی، مناسب و بدون مشکل و نقص (اصطلاحا نویز) است. داده ها به فرمت های مختلفی وجود دارند که می توانیم آنها را به سه گروه کلی داده های ساخت یافته (structured data)، داده های نیمه ساخت یافته (semi-structured data)، داده های غیر ساخت یافته (unstructured data) دسته بندی کنیم. داده های ساخت یافته که می توانیم آنرا داده های با ساختار نیز بنامیم، می توانند شامل فایل های متنی ساده، باشند. در مقابل فایل های نیمه ساخت یافته وجود دارند که می توانند شامل فایل های اکسل (صفحه گسترده)، فایل های csv (یا comma spread)، فایل های فرمت json و فایل های فرمت xml باشند. به طور مثال فرمت فایل های اکسل و csv به صورت ستونی و چندین سطر تشکیل شده اند که گاهی اوقات به جای واژه ستون از واژه سرایند (header) استفاده می شود. فایل های بی ساختار یا غیر ساخت یافته نیز همانطور که از نام آنها مشخص است شامل ساختار مخشصی نیستند. در یک دید کلی می توانیم فایل های باینری مانند تصاویر، ویدیو ها و غیره را جز دسته فایل های غیر ساخت یافته بدانیم. شکبه های اجتمامی شامل حجم بسیار انبوهی از این دسته از داده ها هستند که نرخ تولید و انشتار آنها روز به روز افزایش پیدا می کند.

بنابراین مستقل از مفهوم وب اسکرپینگ، امروزه وب (یا اینترنت) شامل انواع مختلفی از داده ها هستند که صفحه های وب این داده ها را در اختیار کاربران قرار می دهند. یک صفحه وب می تواند شامل متن، تصویر، صدا، ویدیو، فایل های پی دی اف و غیره باشد که وب اسکرپینگ روش، فر ایند، ابزار و امکان های زبان برنامه نویسی است که می توانیم این دسته داده ها را از صفحه های وب استخراج و سپس آنها را به منظور بدست آوردن اطلاع ها و پیش بینی ها و کسب دانش در یک حوزه خاص، مورد تحلیل و پردازش قرار دهیم. در مفاهیم دانش داده ها (یا علم داده ها – Data Science)، داده ها، را داده های خام (Raw Data) نیز می نامند که تنها بر روی منابع داده ذخیره شده اند و جز یک سری معانی اولیه و خام، هیچ اطلاع و کاربرد مفیدی از آنها نمی توان بدست آورد.

اگر منبع داده را پایگاه داده رابطه ای در نظر بگیریم که شامل چندین جدول می باشد، بر اساس هر ستون های جدول، می توان سطرهایی را بدست آورد که به طور مثال کدام کارمندها بیشترین حقوق را می گیر ند و کدام کارمندها بیشترین درصد کمسیون را دریافت کرده اند.

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

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

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