تراش‌دادن داده

از ویکی‌پدیا، دانشنامهٔ آزاد

در تکنیک تراش‌دادن داده (به انگلیسی: Data scraping) یک برنامه رایانه ای داده ها را از خروجی های انسان-خواندنی (به انگلیسی: human-readable) که از برنامه ی دیگری آمده است، استخراج می کند[۱].

تفاوت تجزیه داده با تراش داده[ویرایش]

  • در تجزیه داده (Data parsing) انتقال داده بین برنامه های رایانه ای معمولاً با استفاده از ساختمان های داده ای که برای پردازش خودکار توسط رایانه، مناسب اند (نه انسان ها) انجام می شود. این فرمت های تبدیل و پروتکل ها معمولاً به صورت سختگیرانه ای ساخت یافته اند، به خوبی سند دهی شده اند، و به راحتی قابل تجزیه می باشند، و نیز ابهام را در حد حداقل قرار می دهند. این نوع انتقال داده، اصلاً انسان-خواندنی نیست[۱].
  • تراش داده بر خلاف روش های تجزیه معمول، قصد دارد تراش را روی خروجی که برای نمایش به کاربر نهایی در نظر گرفته شده است، انجام دهد. بنابراین این خروجی ها به صورت مناسب ساختار دهی نشده نشده اند تا به صورت معمول تجزیه (parse) شوند[۱].

عمل تراش دادن داده، معمولاً شامل نادیده گرفتن داده های دودویی (معمولاً تصاویر یا داده ی چند رسانه ای)، نادیده گرفتن قالب دهی نمایشگر، نادیده گرفتن برچسب های تکراری، نادیده گرفتن توضیحات زاید، و نادیده گرفتن اطلاعات دیگری است که یا بی ربط اند یا مانع پردازش خودکار می شوند[۱].

موارد کاربرد تراش داده[ویرایش]

  • تراش داده معمولاً برای ارتباط با سامانه های موروثی (سیستم های قدیمی) که هیچ ساز و کار دیگری برای سازگاری با سخت افزار فعلی موجود ندارند، استفاده می شود.
  • تراش داده ممکن است در سیستم های ثالثی که رابط برنامه نویسی کاربری (API) مناسبی ندارند، استفاده شود. در این حالت ممکن است کاربر سیستم ثالث، به دلیل ایجاد بار کاری بالا برای سیستم، یا نبود درآمد های لازم برای ساخت رابط، یا از بین رفتن کنترل روی محتوای اطلاعات، از ساخت یک رابط کاربری مناسب خودداری کند.[۱]

چه موقع از تراش داده استفاده می شود؟[ویرایش]

تراش داده معمولاً، یک تکنیک موردی ناخوشایند است، و «آخرین پناهگاه فرار» می باشد، یعنی موقعی که هیچ ساز و کار دیگری برای تبادل داده در دسترس نیست، از این روش باید استفاده کرد.

دلیل این موضوع، اول، سربار پردازشی و برنامه نویسی بالاتر، می باشد، دلیل بعدی آن است که خروجی های نمایشی که برای مصرف انسان ها درنظر گرفته شده اند، ساختارشان به صورت مکرر تغییر می کند. اگر چه انسان ها به سادگی با این موضوع کنار می آیند، اما برنامه های رایانه ای ممکن است این موضوع را غیر عقلانی بدانند، زیرا به آنها گفته شده است که داده را در یک قالب خاص، و در یک محل خاص، بخوانند. این سیستم ها اطلاعاتی در مورد نحوه بررسی نتایج برای تصدیق آنها ندارند.[۱]

انواع فنی تراش دادن داده[ویرایش]

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

تراش صفحه نمایش[ویرایش]

تراش صفحه نمایش معمولاً جمع آوری داده های دیداری از یک منبع، مثل پایانه رایانه ای، به جای تجزیه ی داده در تراش صفحه وب است. به خواندن داده ی متنی از صفحه پایانه نمایش رایانه، تراش صفحه نمایش گفته می شود. مثلاً در سیستم های قدیمی که از برنامه کاربردی پردازنده مرکزی (از نوع IBM 3270) بعضی از برنامه های وب منحصراً از تکنیک های «تراش صفحه» برای در اختیار گرفتن صفحه و انتقال داده به خروجی های مدرن استفاده می کنند[۲].

تراش وب[ویرایش]

صفحات وب توسط زبان های نشانه گذاری متنی (HTML و XHTML) ساخته شده اند، و به صورت معمول شامل داده های مفیدی در حالت متنی می باشند. با این حال، بیشتر صفحه های وب برای کاربر نهایی انسانی طراحی شده اند و برای استفاده ی خودکار مناسب نیستند. به این دلیل، جعبه ابزارهایی که توانایی تراش صفحه وب دارند ساخته شده اند. یک تراش دهنده ی وب یک رابط برنامه نویسی کاربردی (یا ابزار عمومی) برای استخراج داده از وب سایت می باشد. شرکت هایی مثل سرویس های وب آمازون و گوگل ابزارها، سرویس‌ها، و داده های عمومی تراش وب را، که برای کاربر نهایی رایگان می باشند، ارائه می دهند. انواع جدیدتر تراش صفحه شامل گوش دادن به «خوراک داده» از سرورهای وب می باشد. برای مثال، از JSON معمولاً به عنوان یک سازکار ارتباطی ذخیره سازی بین کارخواه و سرور وب استفاده می شود.

امروزه، شرکت ها سیستم های تراش داده ای را توسعه داده اند که متکی به تکنولوژی هایی در تجزیه ی DOM، بینایی رایانه ای، و پردازش زبان های طبیعی می باشند، و هدف آنها «شبیه سازی پردازش های انسانی است که در هنگام دیدن یک صفحه وب رخ می دهد» می باشد، تا اطلاعات مفیدی را به صورت خودکار استخراج کنند[۳][۴].

وب سایت های بزرگ معمولاً از الگوریتم های دفاعی برای محافظت از داده هایشان در برابر تراش دهنده های داده استفاده می کنند، و نیز از روش هایی برای محدود سازی تعداد درخواست هایی که یک IP یا یک شبکه از IP ها می تواند بفرستد استفاده می کنند. این موضوع باعث یک جنگ در حال پیشرفت بین توسعه دهندگان وب سایت ها و توسعه دهنده‌های تراشگرها شده است[۵].

کاوش گزارش[ویرایش]

کاوش گزارش به معنی استخراج داده از گزارش های رایانه ای انسان-خواندنی است. استخراج داده ی سنتی نیاز به یک ارتباط با یک سیستم منبع کاری دارد، استاندارد های اتصال مناسب باید به وجود آید ، یا یک رابط برنامه نویسی کاربردی (API) باید ساخته شود، و معمولاً درخواست دهی در آن پیچیده است. با استفاده از انتخاب گزارش دهی استاندارد سیستم منبع، و انتقال خروجی به یک «فایل قرقره ای» (به جای یک چاپگر)، گزارش های ایستا می تواند ایجاد شوند که این گزارش ها برای تحلیل های غیر برخط از طریق کاوش گزارش ها مناسب اند[۶].

در حالیکه تراش داده و تراش وب تعامل با خروجی های پویا را درنظر دارند، کاوش گزارش ها شامل استخراج داده از فایل ها در قالب های انسان خواندنی، مثل HTML، PDF، یا متن می شوند. که این موارد می توانند به صورت ساده از تقریباً هر سیستمی با حائل کردن «خوراک داده» به یک چاپگر، تولید شوند. این دیدگاه می تواند یک راه ساده و سریع برای دستیابی به داده ایجاد کند، که در آن نیازی به برنامه نویسی یک API به یک سیستم منبع نیست[۱].

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ ۱٫۲ ۱٫۳ ۱٫۴ ۱٫۵ ۱٫۶ "Data scraping". Wikipedia. 2019-12-20.
  2. "Back in the 1990s.. 2002 ... 2016 ... still, according to Chase Bank, a major issue. Ron Lieber (May 7, 2016). "Jamie Dimon Wants to Protect You From Innovative Start-Ups". The New York Times.
  3. "Diffbot aims to make it easier for apps to read Web pages the way humans do". MIT Technology Review. Retrieved 1 December 2014.
  4. "This Simple Data-Scraping Tool Could Change How Apps Are Made". WIRED. Archived from the original on 11 May 2015. Retrieved 8 May 2015.
  5. ""Unusual traffic from your computer network" - Search Help". support.google.com. Retrieved 2017-04-04.
  6. Scott Steinacher, "Data Pump transforms host data", InfoWorld, 30 August 1999, p55