وب اسکرپینگ(web scraping) یعنی جمع آوری اطلاعات به صورت خودکار و غیر دستی از سطح وب.

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

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

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

چند نمونه از کاربردهای وب اسکرپینگ

جمع آوری اطلاعات برای تحلیل داده: مثلا بررسی مطالب منتشر شده در شبکه های اجتماعی درباره یک موضوع خاص برای تحلیل نظرات مردم.

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

به دست آوردن دیتای لازم برای استفاده در پروژه های یادگیری ماشین(machine learning).

-دریافت اطلاعات کاربرها از پروفایل شبکه های اجتماعی.

وب اسکرپینگ با چه ابزارهایی انجام می شود؟

برای انجام وب اسکرپینگ باید از یک زبان برنامه نویسی استفاده کنیم.

روش کار معمولا به این صورت است. یک ریکوئست (request) به صفحه مورد نظر ارسال می شود، محتویات صفحه توسط برنامه دریافت می شود و در آخر متن یا عکس یا هر محتوایی که در صفحه نیاز داشته باشیم استخراج می‌شود.

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

python: قطعا محبوبترین و قوی ترین زبان برنامه نویسی برای وب اسکرپینگ پایتون است. به خاطر کتابخانه های مختلفی که برای وب اسکرپینگ دارد. مثل beautiful soap و scrapy.

php: با اینکه پی اچ پی اختصاصا برای ساخت برنامه های تحت وب استفاده می‌شود اما با وجود کتابخانه ای مثل goutte امکان وب اسکرپینگ هم با آن به سادگی وجود دارد.

nodejs: البته نود جی اس یک زبان برنامه نویسی نیست. یک بستری است که کدهای زبان جاوا اسکریپت در آن اجرا شوند. به هر حال با استفاده از nodejs هم می شود وب اسکرپینگ انجام داد. کتابخانه هایی مثل cheerio و pupeteer برای این کار استفاده می‌شوند.

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