در تکنیک تراشیدن داده (به انگلیسی: Data scraping) یک برنامه رایانه ای دادهها را از خروجیهای انسان-خواندنی (به انگلیسی: human-readable) که از برنامهٔ دیگری آمدهاست، استخراج میکند.[۱]
در تجزیه داده (Data parsing) انتقال داده بین برنامههای رایانهای معمولاً با استفاده از ساختمانهای دادهای که برای پردازش خودکار توسط رایانه، مناسب اند (نه انسانها) انجام میشود. این فرمتهای تبدیل و پروتکلها معمولاً به صورت سختگیرانهای ساخت یافتهاند، به خوبی سند دهی شدهاند، و به راحتی قابل تجزیه میباشند، و نیز ابهام را در حد حداقل قرار میدهند. این نوع انتقال داده، اصلاً انسان-خواندنی نیست.[۱]
تراش داده برخلاف روشهای تجزیه معمول، قصد دارد تراش را روی خروجی که برای نمایش به کاربر نهایی در نظر گرفته شدهاست، انجام دهد؛ بنابراین این خروجیها به صورت مناسب ساختار دهی نشدهاند تا به صورت معمول تجزیه (parse) شوند.[۱]
عمل تراش دادن داده، معمولاً شامل نادیده گرفتن دادههای دودویی (معمولاً تصاویر یا دادهٔ چند رسانه ای)، نادیده گرفتن قالب دهی نمایشگر، نادیده گرفتن برچسبهای تکراری، نادیده گرفتن توضیحات زاید، و نادیده گرفتن اطلاعات دیگری است که یا بی ربط اند یا مانع پردازش خودکار میشوند.[۱]
موارد کاربرد تراش داده
تراش داده معمولاً برای ارتباط با سامانههای موروثی (سیستمهای قدیمی) که هیچ سازوکار دیگری برای سازگاری با سختافزار فعلی موجود ندارند، استفاده میشود.
تراش داده ممکن است در سیستمهای ثالثی که رابط برنامهنویسی کاربری (API) مناسبی ندارند، استفاده شود. در این حالت ممکن است کاربر سیستم ثالث، به دلیل ایجاد بار کاری بالا برای سیستم، یا نبود درآمدهای لازم برای ساخت رابط، یا از بین رفتن کنترل روی محتوای اطلاعات، از ساخت یک رابط کاربری مناسب خودداری کند.[۱]
چه موقع از تراش داده استفاده می شود؟
تراش داده معمولاً، یک تکنیک موردی ناخوشایند است، و «آخرین پناهگاه فرار» میباشد، یعنی موقعی که هیچ سازوکار دیگری برای تبادل داده در دسترس نیست، از این روش باید استفاده کرد.
دلیل این موضوع، اول، سربار پردازشی و برنامهنویسی بالاتر، میباشد، دلیل بعدی آن است که خروجیهای نمایشی که برای مصرف انسانها درنظر گرفته شدهاند، ساختارشان به صورت مکرر تغییر میکند. اگر چه انسانها به سادگی با این موضوع کنار میآیند، اما برنامههای رایانه ای ممکن است این موضوع را غیر عقلانی بدانند، زیرا به آنها گفته شدهاست که داده را در یک قالب خاص، و در یک محل خاص، بخوانند. این سیستمها اطلاعاتی در مورد نحوه بررسی نتایج برای تصدیق آنها ندارند.[۱]
انواع فنی تراش دادن داده
تراش صفحه نمایش
تراش صفحه نمایش معمولاً جمعآوری دادههای دیداری از یک منبع، مثل پایانه رایانه ای، به جای تجزیهٔ داده در تراش صفحه وب است. به خواندن دادهٔ متنی از صفحه پایانه نمایش رایانه، تراش صفحه نمایش گفته میشود؛ مثلاً در سیستمهای قدیمی که از برنامه کاربردی پردازنده مرکزی (از نوع IBM 3270) بعضی از برنامههای وب منحصراً از تکنیکهای «تراش صفحه» برای در اختیار گرفتن صفحه و انتقال داده به خروجیهای مدرن استفاده میکنند.[۲]
تراش وب
صفحات وب توسط زبان های نشانه گذاری متنی (HTML و XHTML) ساخته شده اند، و به صورت معمول شامل داده های مفیدی در حالت متنی می باشند. با این حال، بیشتر صفحه های وب برای کاربر نهایی انسانی طراحی شده اند و برای استفاده ی خودکار مناسب نیستند. به این دلیل، جعبه ابزارهایی که توانایی تراش صفحه وب دارند ساخته شده اند. یک تراش دهنده ی وب یک رابط برنامه نویسی کاربردی (یا ابزار عمومی) برای استخراج داده از وب سایت می باشد. شرکت هایی مثل سرویس های وب آمازون و گوگل ابزارها، سرویسها، و داده های عمومی تراش وب را، که برای کاربر نهایی رایگان می باشند، ارائه می دهند. انواع جدیدتر تراش صفحه شامل گوش دادن به «خوراک داده» از سرورهای وب می باشد. برای مثال، از JSON معمولاً به عنوان یک سازکار ارتباطی ذخیره سازی بین کارخواه و سرور وب استفاده می شود.
امروزه، شرکت ها سیستم های تراش داده ای را توسعه داده اند که متکی به تکنولوژی هایی در تجزیه ی DOM، بینایی رایانه ای، و پردازش زبان های طبیعی می باشند، و هدف آنها «شبیه سازی پردازش های انسانی است که در هنگام دیدن یک صفحه وب رخ می دهد» می باشد، تا اطلاعات مفیدی را به صورت خودکار استخراج کنند[۳][۴].
وب سایت های بزرگ معمولاً از الگوریتم های دفاعی برای محافظت از داده هایشان در برابر تراش دهنده های داده استفاده می کنند، و نیز از روش هایی برای محدود سازی تعداد درخواست هایی که یک IP یا یک شبکه از IP ها می تواند بفرستد استفاده می کنند. این موضوع باعث یک جنگ در حال پیشرفت بین توسعه دهندگان وب سایت ها و توسعه دهندههای تراشگرها شده است[۵].
کاوش گزارش
کاوش گزارش به معنی استخراج داده از گزارشهای رایانه ای انسان-خواندنی است. استخراج داده ی سنتی نیاز به یک ارتباط با یک سیستم منبع کاری دارد، استانداردهای اتصال مناسب باید به وجود آید، یا یک رابط برنامهنویسی کاربردی (API) باید ساخته شود، و معمولاً درخواست دهی در آن پیچیدهاست. با استفاده از انتخاب گزارش دهی استاندارد سیستم منبع، و انتقال خروجی به یک «فایل قرقره ای» (به جای یک چاپگر)، گزارشهای ایستا میتواند ایجاد شوند که این گزارشها برای تحلیلهای غیر برخط از طریق کاوش گزارشها مناسب اند.[۶]
درحالیکه تراش داده و تراش وب تعامل با خروجیهای پویا را درنظر دارند، کاوش گزارشها شامل استخراج داده از فایلها در قالبهای انسان خواندنی، مثل HTML, PDF، یا متن میشوند. که این موارد میتوانند به صورت ساده از تقریباً هر سیستمی با حائل کردن «خوراک داده» به یک چاپگر، تولید شوند. این دیدگاه میتواند یک راه ساده و سریع برای دستیابی به داده ایجاد کند، که در آن نیازی به برنامهنویسی یک API به یک سیستم منبع نیست.[۱]