دیتا اسکرپینگ، به تکنیکی اشاره دارد که در آن یک نرم افزار کامپیوتری، داده ها را از خروجی های تولید شده توسط برنامه ای دیگر، دریافت می کند. دیتا اسکرپینگ در وب، معمولاً به فرآیند استفاده از یک نرم افزار، برای استخراج اطلاعات یک وب سایت، اشاره دارد.
تصویر(1)
چرا محتوا و اطلاعات یک وب سایت دچار اسکرپینگ می شود؟
اصولا شرکتها نمی خواهند اطلاعاتشان توسط اشخاص متفرقه دانلود و مورد سو استفاده قرار گیرد. در نتیجه، آنها تمامی داده های خود را از طریق یک API یا سایر روش ها، به راحتی در دسترس عموم قرار نمی دهند. از سوی دیگر، رباتهای Scraper علاقهمند به دریافت دادههای وبسایت هایی می باشند که مدیران آنها تلاشی برای محدود کردن دسترسی ها انجام نداده اند. در نتیجه، یک رقابت بین رباتهای Scraper وب و استراتژیهای مختلف محافظت از محتوا به وجود آمده است که هر کدام سعی در غلبه بر دیگری دارند.
فرآیند اسکرپینگ وب نسبتاً ساده است، اگرچه اجرای آن می تواند پیچیده باشد. اسکرپینگ وب در 3 مرحله انجام می شود:
- ابتدا قطعه کد مورد استفاده برای استخراج اطلاعات، که "ربات اسکرپر" نامیده می شود، درخواست HTTP GET را به وب سایت موردنظر ارسال می کند.
- هنگامی که وب سایت پاسخ دهد، اسکرپر، فایل HTML را برای یافتن الگوی خاصی از داده ها، تجزیه می کند.
- پس از استخراج، داده ها به فرمتی که نویسنده ربات اسکرپر طراحی کرده است، تبدیل می شوند.
ربات های Scraper را می توان برای اهداف مختلفی طراحی کرد، مانند:
-
اسکرپینگ محتوا - می توان یک محتوا را از وب سایتی به وب سایت دیگر، جهت تکرار محصول یا خدماتی که بر محتوا متکی هستند، منتقل کرد. به عنوان مثال، تصور کنید محصول X به نظرات متکی می باشد. یک رقیب می تواند تمام نظرات محصول را در سایت خود بازتولید نماید و وانمود کند که محتوای اصلی است.
-
اسکرپینگ قیمت - با اسکرپینگ داده های قیمت گذاری، افراد قادر به جمع آوری اطلاعات رقبای خود خواهند بود. این نکته می تواند به آنها اجازه دهد تا یک برتری منحصر به فرد، به دست آورند.
-
اسکرپینگ اطلاعات تماس - بسیاری از وب سایت ها، آدرس ایمیل و شماره تلفن را به صورت یک متن ساده در سایت درج می کنند. با دسترسی به مسیرهایی مانند لیست کارمندان آنلاین، ربات دیتا اسکرپینگ قادر به جمع آوری اطلاعات تماس برای ارسال ایمیل انبوه، تماس تلفنی یا مهندسی اجتماعی مخرب، خواهد بود. این مورد یکی از روشهای اصلی هم برای اسپمرها و هم برای کلاهبرداران است.
چگونه وب اسکرپینگ کاهش می یابد؟
به طور کلی، صرفا محتوایی که یک بازدیدکننده قادر به مشاهده آن است باید به دستگاه آن منتقل شود و هر اطلاعاتی که بازدیدکننده بتواند به آن دسترسی داشته باشد می تواند توسط یک ربات، اسکرپ گردد.
روش هایی برای محدود کردن اسکرپینگ وب وجود دارد. در ادامه، 3 روش آمده است:
-
محدودیت ارسال درخواست - سرعت تعامل یک بازدیدکننده انسانی، در برخی از صفحات قابل ارزیابی است. باز کردن 100 صفحه در یک ثانیه توسط یک انسان غیر عادی می باشد. از سوی دیگر، رایانهها میتوانند سرعت تعاملات بیشتری نسبت به یک انسان داشته باشند. اسکرپرهای تازهکار ممکن است از تکنیکهای دیتا اسکرپینگ منسوخ شده برای اسکرپ کل وبسایت استفاده کنند. با محدود کردن تعداد درخواست های ارسالی از هر آدرس IP، وبسایتها میتوانند از خود در برابر درخواستهای مخرب محافظت کرده و میزان اسکرپینگ را محدود نمایند.
-
تگ های HTML را در فواصل زمانی منظم تغییر دهید - رباتهای اسکرپر به فرمت ثابتی اکتفا می کنند تا بتوانند به طور موثر محتوای وبسایت را مرور کرده و دادههای مفید را تجزیه و ذخیره کنند. یکی از روشهای وقفه در این کار، تغییر منظم تگ های نشانهگذاری HTML است تا در روند اسکرپینگ اختلال ایجاد شود. با ایجاد تگ های HTML تودرتو یا تغییر سایر جنبههای نشانهگذاری، تلاشها در جهت اسکرپینگ دادهها مختل یا خنثی خواهند شد.
-
استفاده از کپچا برای کنترل حجم بالای ارجاعات - علاوه بر ایجاد محدودیت درخواست های ارسالی، روشی دیگر برای کاهش سرعت دیتا اسکرپینگ این است که بازدیدکننده وب سایت، به چالشی که غلبه بر آن برای یک ربات دشوار می باشد، پاسخ دهد. یک فرد واقعی می تواند به طور منطقی، چالش را انجام دهد اما یک «headless browser» که در حال جمع آوری داده ها است، به احتمال زیاد قادر به عبور از سد آن نخواهد بود. از طرفی، استفاده از کدهای CAPTCHA زیاد، میتواند بر تجربه کاربر تأثیر منفی بگذارد.
headless browser نوعی مرورگر وب بوده که بسیار شبیه به کروم یا فایرفاکس است اما به طور پیش فرض رابط کاربری بصری ندارد و به همین دلیل بسیار سریعتر از یک مرورگر معمولی عمل می کند. با اجرای دستورات در سطح خط فرمان یا command line، یک مرورگر headless قادر خواهد بود تا از لود شدن تمامی بخش های نرم افزارهای تحت وب، جلوگیری نماید. تکنیک های دیتا اسکرپینگ، ربات هایی را ایجاد می کنند که از headless browser برای دریافت سریعتر داده ها استفاده می نمایند و به همین دلیل، هیچ انسانی متوجه نمی شود که یک صفحه، اسکرپ شده است.
یکی دیگر از روش هایی که کمتر رایج می باشد، جایگذاری محتوا درون اشیاء رسانه ای، مانند تصاویر است. به دلیل اینکه محتوا، به صورت یک رشته از کاراکترها نیست، کپی کردن آن ها نیز بسیار پیچیدهتر خواهد بود و برای استخراج دادهها از یک فایل تصویری، نیاز به تشخیص بصری کاراکترها می باشد. همچنین این امر میتواند مانعی برای کاربران ایجاد کند زیرا به خاطر سپردن یا تایپ مجدد محتوایی مانند آدرس یا شماره تلفن، دشوار خواهد شد.
نحوه متوقف کردن وب اسکرپینگ به طور کامل
تنها راه برای حذف کامل وب اسکرپینگ این است که از قرار دادن کامل محتوا در وب سایت خودداری کنید. اما استفاده از یک روش پیشرفته مدیریت ربات نیز می تواند به وب سایت ها کمک کند تا به طور کامل دسترسی ربات های scraper را حذف کنند.
تفاوت بین دیتا اسکرپینگ و خزیدن داده چیست؟
خزیدن به فرایندی اطلاق میشود که موتورهای جستجوی بزرگی مانند گوگل، Googlebot ها را برای جستجوی محتوای اینترنتی، به شبکه می فرستند. در مقابل، دیتا اسکرپینگ جهت استخراج داده ها از یک وب سایت خاص به کار گرفته می شود.
در ادامه 3 مورد از اقداماتی که یک ربات دیتا اسکرپینگ انجام می دهد ذکر شده که با رفتار یک ربات خزنده، متفاوت است:
- رباتهای Scraper وانمود میکنند که مرورگر هستند، در حالی که هدف یک ربات خزنده مشخص است و سعی نمیکند وبسایت ها را فریب دهد.
- گاهی اوقات Scraper ها اقدامات پیشرفته ای مانند پر کردن فرم ها یا رفتارهای دیگری برای رسیدن به بخش خاصی از وب سایت انجام می دهند که خزنده ها این کار را نخواهند کرد.
- Scraper ها معمولاً هیچ توجهی به فایل robots.txt ندارند. این فایل متنی، طوری طراحی شده تا به خزنده های وب اعلام کند چه داده هایی را تجزیه و تحلیل کرده و از کدام بخش سایت، اجتناب کنند. از آنجایی که یک اسکرپر برای استخراج یک محتوای خاص طراحی شده، ممکن است جهت محتوایی به کار گرفته شود که صراحتا در فایل robots.txt، دسترسی به آن منع شده باشد.