خانه توسعهدهنده وب اسکرپینگ چیست و چطور انجام میشود؟ – راهنمای کامل Web Scraping
وب اسکرپینگ چیست و چطور انجام میشود؟ – راهنمای کامل Web Scraping
وب اسکرپینگ راهکاری برای جمعآوری خودکار دادههای کلان از وبسایتهای گوناگون است و یکی از بهینهترین و کارآمدترین روشهای این کار در سال ۲۰۲۳ به حساب میآید. این روزها بسیاری از کسبوکارها از این تکنیک برای تحقیق بازار، تسهیل جذب مشتری و همینطور پایش قیمتگذاریها و فعالیتهای رقبا استفاده میکنند. اما وب اسکرپینگ چیست و دقیقا چطور کار میکند؟ با کوئرا بلاگ همراه باشید تا به این سوالها و انبوهی سوال دیگر پاسخ بدهیم.
فهرست مطالب
Toggleوب اسکرپینگ چیست؟
وب اسکرپینگ (Web Scraping) به فرایند جمعآوری خودکار دادههای ساختارمند یا غیر ساختارمند گفته میشود و نامهای دیگری مانند «استخراج داده وب» یا «وب دیتا اسکرپینگ» هم دارد. به عنوان مثال با جمعآوری انواع و اقسام دادهها میتوانید به کارهایی مانند پایش قیمتگذاری محصولات، پایش تازهترین اخبار، جذب مشتری و تحقیق بازار مشغول شوید. به صورت کلی افراد و کسبوکارهایی به سراغ وب اسکرپینگ میروند که میخواهند از دادههایی که در دسترس عموم قرار دارند برای کسب اطلاعات عمیق و اتخاذ تصمیمات هوشمندانه کمک بگیرند.
اگر تاکنون اطلاعاتی را از هر وبسایتی کپی و در جایی دیگر پیست کرده باشید، کاری مشابه با ابزارهای وب اسکرپینگ انجام دادهاید، فقط با این فرق که فرایند را به صورت دستی پیش بردهاید. اما برخلاف فرایند استخراج دستی اطلاعات که میتواند زمانبر و مستعد خطا باشد، در وب اسکرپینگ از یادگیری ماشین و اتوماسیون هوشمند استفاده میکنیم تا قادر به گردآوری هزاران، میلیونها و یا حتی میلیاردها داده گوناگون از جهان به ظاهر بیپایان اینترنت باشیم.
وب اسکرپر چیست و چه فرقی با وب کراولر دارد؟
وب اسکرپر (Web Scraper) ابزاری است که فرایند استخراج داده را از وبسایتها آسان میکند و شکلی سریع و دقیق به آن میبخشد. داده استخراج شده سپس شکلی ساختارمند به خود میگیرد تا به راحتی در پروژه استفاده و یا آنالیز شود. این فرایند بسیار آسان است و از دو عنصر تشکیل شده: وب اسکرپر و «وب کراولر» (Web Crawler).
میشود گفت وب کراولر مانند اسب است و اسکرپر هم ارابه. در واقع کراولر ابزاری است که اسکرپر را در سطح اینترنت هدایت میکند.
- کراولر: وب کراولر که به آن «عنکبوت» یا «اسپایدر» هم گفته میشود، هوشی مصنوعی است که در سطح اینترنت گشت میزند و از طریق اکتشاف یا دنبال کردن لینکها، محتوا را فهرستبندی و جستجوپذیر میکند. در بسیاری از پروژههای وب اسکرپینگ، ابتدا باید سطح وب یا سایت مورد نظرتان را «کراول» کنید تا لینکهایی که قرار است در اختیار اسکرپر قرار بگیرند را بیابید.
- اسکرپر: وب اسکرپر ابزاری تخصصی است که برای استخراج داده سریع و دقیق از صفحات وب طراحی شده است. این ابزارها با طراحیهای گوناگون و سطوح مختلفی از پیچیدگی به دست کاربران میرسند و بهترین انتخاب به ماهیت پروژه بستگی دارد. یکی از مهمترین اجزای هر وب اسکرپری، «سلکتور» (Selector) هایی هستند که از آنها برای یافتن داده مورد نظر درون فایل HTML کمک میگیرید. معمولا از سلکتورهای CSS و XPath و RegEx یا ترکیبی از آنها برای این کار استفاده میشود.
حالا که میدانیم وب اسکرپینگ چیست و اسکرپر و کراولر نیز چه تفاوتی با یکدیگر دارند، میتوانیم ببینیم فرایند پیادهسازی وب اسکرپینگ چه شکلی است.
فرایند وب اسکرپینگ چه شمایلی دارد؟
اگر بخواهیم به شکلی ساده و سرراست به موضوع نگاه کنیم، فرایند وب اسکرپینگ با استفاده از ابزارهای گوناگون معمولا در همین چند گام خلاصه میشود:
- شناسایی سایت مورد نظر
- جمعآوری URL های صفحات هدف
- ارسال درخواست به این URL ها برای دریافت HTML صفحه
- استفاده از «لوکیتور» (Locator) ها برای یافتن اطلاعات درون HTML
- ذخیرهسازی داده در فرمت JSON یا CSV یا هر فرمت ساختارمند دیگری
آسان به نظر میرسد، مگر نه؟
اگر پروژهای کوچک داشته باشید، همهچیز به همین سادگی پیش خواهد بود. اما پروژههای بزرگتر که نیازمند جمعآوری دادههای کلان هستند باید با مجموعهای از چالشهای گوناگون مقابله کنند.
برای مثال تغییرات احتمالی در ساختار سایت هدف، مدیریت پروکسیها، پیادهسازی جاوا اسکریپت و یا سر و کله زدن با ابزارهای مقابله با باتها از رایجترین سردردهای این حوزه به حساب میآیند. ناگفته نماند که در حال حاضر ابزارهای متنباز زیادی برای وب اسکرپینگ پیدا میکنید که البته معمولا محدودیتهای خاص خود را دارند.
ابزار وب اسکرپینگ چیست و چطور کار میکند؟
ابزار وب اسکرپینگ نرمافزاری است که طراحی شده تا به شما در استخراج (یا اسکرپ) داده مورد نظرتان از سایتهای مختلف کمک کند. این ابزار درخواستهای HTTP را برای وبسایت هدف میفرستند و داده وب را از صفحات استخراج میکند. این ابزار به سراغ محتوایی میرود که به صورت عمومی در دسترس باشد و به صورت HTML در سرور رندر بشود.
گاهی از اوقات، ابزار وب اسکرپینگ وظیفهای دیگر نیز دارد و آن، ارسال درخواستهای داخلی برای رابط برنامهنویسی اپلیکیشن (Application Programming Interface | API) است. به این ترتیب میتوان دادههای مرتبط که در دیتابیس ذخیره شدهاند – مانند قیمت محصولات یا شماره تماس افراد – را فراخوانی کرد و از طریق درخواستهای HTTP، در اختیار مرورگر گذاشت.
اساسا میشود گفت برای گستره وسیعی از کارها مانند شناسایی ساختارهای منحصر به فرد HTML، استخراج داده، تغییر فرمت داده و ذخیرهسازی داده از طریق API ها به چنین ابزاری نیاز خواهید داشت.
ابزارهای وب اسکرپینگ اشکال گوناگون دارند. برخی فریمورکهای بزرگی هستند که برای رسیدگی به انواع و اقسام وظایف مربوط به وب اسکرپینگ طراحی شدهاند. اما در عین حال میتوانید به سراغ کتابخانههای برنامهنویسی عمومی نیز بروید و آنها را با یکدیگر ترکیب کنید تا اسکرپری ساده و کاربردی داشته باشید.
به عنوان مثال میتوانید از یک کتابخانه درخواستهای HTTP (مانند کتابخانه requests پایتون) کمک بگیرید و آن را با کتابخانه BeautifulSoup ترکیب کنید تا قادر به اسکرپ داده از صفحه مورد نظرتان باشید. یا میتوانید به سراغ فریمورکی مخصوص بروید که کلاینت HTTP را با کتابخانهای برای تجزیه HTML ادغام میکند. یکی از محبوبترین موارد، فریمورک Scrapy است که به صورت متنباز و برای رسیدگی به نیازهای پیشرفته طراحی شده.
کاربردهای گوناگون وب اسکرپینگ چیست؟
وب اسکرپینگ کاری ارزشمند میکند که جایگزینهای زیادی برای آن پیدا نخواهید کرد: با این متد میتوانید دادهای ساختارمند را از هر وبسایتی که فعالیتی عمومی دارد، استخراج کنید. بسیاری از کسبوکارهای بزرگ و مدرن از وب اسکرپینگ برای تحلیل عملکرد و اتخاذ تصمیمات حیاتی کمک میگیرند. در ادامه میبینیم که برخی از رایجترین کاربردهای وب اسکرپینگ چیست و این متد چه مزایایی به همراه میآورد.
پایش قیمتگذاری رقبا
این یکی از برجستهترین کاربردهای وب اسکرپینگ است. بسیاری از شرکتهای مدرنی که میخواهند تصمیماتی بهتر در زمینه قیمتگذاری محصول و یا بازاریابی اتخاذ کنند، اهمیت زیادی به پایش فعالیتهای رقبا میدهند. از مهمترین مزایای وب اسکرپینگ در این حوزه میشود به دسترسی به قیمتهای پویا، بهینهسازی درآمد، پایش عملکرد رقبا، پایش ترندهای مرتبط به محصولات و همینطور پایش عملکرد برند اشاره کرد.
تحقیق بازار
تحقیق بازار فرایندی بسیار مهم است و باید با دقیقترین اطلاعات ممکن پیش برود. با استفاده از وب اسکرپینگ به انبوهی داده با کیفیت و ارزشمند دست مییابید که در اشکال و ابعاد گوناگون از راه میرسند و به تحلیل بازار و هوش تجاری کمک میکنند.
املاک و مستغلات
دگرگونی دیجیتالی بازار املاک طی ۲۰ سال اخیر، عملکرد بسیاری از شرکتهای سنتی را مختل کرده و باعث شده بازیگرانی تازهنفس وارد این صنعت شوند. با اسکرپ اطلاعات بازار املاک، کسبوکارها و کارگزاران میتوانند از خود در برابر رقبای آنلاین محافظت کنند و تصمیماتی آگاهانه بگیرند.
پایش اخبار و محتوا
رسانههای مدرن میتوانند حاوی اطلاعاتی ارزشمند و یا تهدیدی برای کسبوکار شما باشند. اگر شرکت شما بر تحلیل سریع اخبار متکی است یا دائما سر از اخبار در میآورد، وب اسکرپ داده خبری میتواند بهترین راهکار برای پایش، گردآوری و تجزیه محتوا باشد. از دیگر کاربردهای بالقوه میشود به تصمیمگیری راجع به سرمایهگذاری، تحلیل عواطف عمومی و پایش عملکرد رقبا اشاره کرد.
پایش عملکرد برند
در بازار شدیدا رقابتی امروز بسیار مهم است که از اعتبار آنلاین خود محافظت کنید. چه مشغول به فروش محصولات آنلاین باشید و بخواهید قواعدی سختگیرانه را در پیش بگیرید و چه بخواهید از نظر مردم راجع به محصولات باخبر شوید، پایش عملکرد برند از طریق وب اسکرپینگ یکی از بهترین روشها برای کسب چنین اطلاعاتی است.
اتوماسیون کسبوکار
گاهی از اوقات دسترسی به دادههای متعلق به خودتان دشوار میشود. مثلا شاید بخواهید داده موجود در وبسایتی متعلق به خودتان یا یکی از شرکا که ساختاری بهخصوص دارد را استخراج کنید. از آنجایی که هیچ راه آسان دیگری برای این کار وجود ندارد، منطقی است که اسکرپر بسازید و داده را گردآوری کنید.
پایش حداقل قیمت
پایش «حداقل قیمت تبلیغشده» (Minimum Advertised Price | MAP) رویکردی استاندارد است که کسبوکارهای آنلاین برای حصول اطمینان از همسو بودن قیمتگذاریهای خود با قیمت اصلی محصول در پیش میگیرند. با توجه به اینکه این روزها بیشمار سایت خردهفروشی و بازفروشی داریم، پایش دستی قیمتها عملا غیرممکن است. به همین خاطر باید به سراغ وب اسکرپینگ رفت تا بدون هیچ زحمتی، چشمتان را روی قیمتها نگه دارید.
سایر کاربردهای استخراج داده وب
طبیعتا کاربردهای وب اسکرپینگ به همین موارد محدود نمیشود و میتوانید بینهایت کاربرد گوناگون برای آن بیابید. برخی از این موارد دیگر را به صورت خلاصه در پایین آوردهایم:
- پایش اخبار برای خبرنگاران
- پایش عملکرد سئو
- تحلیل رقبا و مدیریت خطر
- بازاریابی دادهمحور
- پایش بازار املاک، تحقیق علمی و بیشمار کاربرد دیگر
چطور یک سایت را به رایگان اسکرپ کنیم؟
این روزها راهکارهای رایگان متعددی برای اتوماسیون فرایند اسکرپ محتوا و استخراج داده از وب پیدا میکنید. برخی از این راهکارها تنها با چند کلیک پیادهسازی میشوند، برخی دیگر هم به درد توسعهدهندگان حرفهایتری میخورند که نیاز به ابزارهای پیکربندی و مدیریت گسترده دارند.
از آنجایی که استخراج داده به صورت دستی بسیار زمانبر و طاقتفرسا است، باید راهی برای اتوماسیون این فرایند پیدا کنیم. پس نیاز به یک ابزار استخراج داده داریم که پیشتر متوجه شدیم «وب اسکرپر» نامیده میشود. خبر خوب اینکه با اندکی جستجو، انبوهی ابزار وب اسکرپر پیدا میکنید.
آنهایی که دانش کدنویسی ندارند میتوانند از تابع «importHTML» در Google Sheets کمک بگیرند که راهی سریع و آسان برای ایمپورت داده از محتوای HTML به حساب میآید. اما این روش محدودیتهای خودش را دارد و مثلا اسکرپ کردن چندین صفحه یا پیشپردازش داده با آن امکانپذیر نیست.
کاربرانی که نیازهای پیچیدهتر دارند هم میتوانند به سراغ کدنویسی پایتون، پی اچ پی یا سرویسهای آنلاینی بروند که اسکریپتهای از پیش آماده برای استخراج داده ارائه میکنند. این سرویسها معمولا برای استخراج داده از یک صفحه کاربرد دارند و برای اسکرپ چندین صفحه یا استخراج دادههای پیچیده ایدهآل نیستند. در چنین سناریوهایی معمولا نیاز به دانش کدنویسی دارید تا اسکریپتهای سفارشی برای دسترسی به داده و استخراج آن بنویسید.
ناگفته نماند که یک گزینه دیگر هم استفاده از افزونهها و پلاگینهایی است که برای مرورگرهای مختلف عرضه شدهاند و رابط کاربری ساده دارند. این افزونهها طبیعتا از بسیاری از همتایان خود پیچیدگی کمتری دارند و در عین حال، حجم و تنوع پایینتری از داده را برای شما اسکرپ خواهند کرد.
شاید علاقهمند باشید: آموزش کاربردی وب اسکرپینگ با PHP
آیا وب اسکرپینگ قانونی است؟
به صورت کلی، مادامی که در حال استفاده مشروع از اطلاعات باشید و قوانین کپیرایت، توافقنامههای دریافت لایسنس و یا قواعد استفاده از خدمات وبسایتها را زیر پا نگذارید، وب اسکرپینگ هیچ ایرادی ندارد.
اما در غاییترین حالت، قانونی یا غیر قانونی بودن وب اسکرپینگ به این بستگی دارد که چه هدفی در پیش گرفته شده، چه اطلاعاتی استخراج میشوند و آیا تخطی از قوانین یک وبسایت صورت گرفته است یا خیر.
روشهای رایج مقابله با وب اسکرپینگ چیست ؟
جلوگیری از اسکرپ شدن محتوای وبسایتها کار آسانی نیست، زیرا بخش اعظمی از پروژههای وب اسکرپینگ کاملا قانونی هستند. اما برای جلوگیری از اسکرپ شدن سایت با مقاصد غیر مجاز یا غیز قانونی، میتوان از تدابیر زیر کمک گرفت:
- فایلهای Robots.txt: این فایلها به وب کراولرها و اسکرپرها میگویند که اجازه دسترسی و اسکرپ کردن کدام صفحات وب را دارند.
- CAPTCHA: با قرار دادن تستهایی که حل کردنشان برای انسانها ساده اما برای برنامههای کامپیوتری دشوار است، میشود ابزارهای اسکرپر ناخواسته را مسدود کرد.
- محدود کردن درخواستها: یک راه دیگر، محدود کردن نرخ ارسال درخواستهای HTTP از اسکرپر به سایت است.
- مبهمسازی: با استفاده از تکنیکهایی مانند انکود کردن، تغییر نام متغیرها و توابع و همینطور کوچکسازی میشود جاوا اسکریپت را تبدیل به کدی کرد که خواندن و درک آن دشوار است.
- مسدودسازی آیپی: در این روش، لاگ سرور را برای شناسایی فعالیتهای اسکرپرها بررسی و آیپی آدرسهای مشکوک را مسدود میکنید.
لازم به اشاره است که هیچ راهکار واحدی نمیتواند از اسکرپ شدن سایتها جلوگیری کند. بنابراین بهترین رویکرد این است که تکنیکهای مختلف را به صورت موازی به کار بگیرید.
+ منبع: Zyte و Techopedia