موضوع مقاله: تراشیدن وب | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تراشیدن وب | مقدمه: وب اسکرپینگ، گردآوری از وب، برداشت وب یا استخراج داده‌های وب، نوعی تراش‌دادن داده است که داده را از وب‌سایت استخراج می‌کند. | ## بخش 1: تراشیدن وب | این کار با استفاده از برنامه‌های کامپیوتری انجام می‌شود که می‌توانند کد HTML صفحات وب را تجزیه و تحلیل کرده و اطلاعات مورد نظر را استخراج کنند. در حالی که گردآوری از وب را می‌توان به صورت دستی توسط یک کاربر نرم‌افزار انجام داد، این اصطلاح معمولاً به فرآیندهای خودکار اجرا شده با استفاده از یک ربات یا خزنده وب اشاره دارد. این نوعی کپی است که در آن داده‌های خاصی از وب جمع‌آوری و کپی می‌شوند، معمولاً در یک پایگاه داده یا صفحه گسترده محلی مرکزی، برای بازیابی یا تجزیه و تحلیل بعدی. واکشی بارگیری یک صفحه است (کاری که مرورگر زمانی که کاربر یک صفحه را مشاهده می‌کند انجام می‌دهد). بنابراین، خزیدن وب یکی از مؤلفه‌های اصلی گردآوری از وب برای واکشی صفحات برای پردازش بعدی است. محتوای یک صفحه ممکن است تجزیه، جستجو و قالب بندی مجدد شود و داده‌های آن در یک صفحه گسترده کپی شده یا در پایگاه داده بارگذاری شود. اسکراپرهای وب معمولاً چیزی را از یک صفحه خارج می‌کنند تا از آن برای هدف دیگری در جای دیگری استفاده کنند. یک مثال می‌تواند یافتن و کپی کردن نام‌ها و شماره تلفن‌ها، شرکت‌ها و آدرس‌های اینترنتی آنها، یا آدرس‌های پست الکترونیکی در یک لیست (خراش دادن مخاطبین) باشد. و همچنین تحلیل تماس، وب اسکرپینگ به عنوان جزئی از برنامه‌های کاربردی مورد استفاده برای نمایه سازی وب، وب کاوی و داده کاوی، نظارت بر تغییر قیمت آنلاین و مقایسه قیمت، خراش بررسی محصول (برای تماشای رقابت)، جمع‌آوری لیست املاک، آب و هوا استفاده می‌شود. نظارت بر داده‌ها، تشخیص تغییر وب سایت، تحقیق، ردیابی حضور و شهرت آنلاین، آمیختگی وب و یکپارچه سازی داده‌های وب. صفحات وب با استفاده از زبان‌های نشانه‌گذاری مبتنی بر متن (HTML و XHTML) ساخته می‌شوند و اغلب حاوی داده‌های مفید فراوانی در قالب متن هستند. با این حال، بیشتر صفحات وب برای کاربران نهایی انسانی طراحی شده‌اند و نه برای سهولت استفاده خودکار. در نتیجه ابزارها و نرم‌افزارهای تخصصی برای تسهیل خراش دادن صفحات وب ایجاد شده‌است. به عنوان مثال، جی‌سان معمولاً به عنوان مکانیزم ذخیره‌سازی انتقال بین مشتری و وب سرور استفاده می‌شود. روش‌هایی وجود دارد که برخی از وب سایت‌ها از آنها برای جلوگیری از خراش وب استفاده می‌کنند، مانند شناسایی و ممنوع کردن ربات‌ها از خزیدن (مشاهده) صفحات خود. در پاسخ، سیستم‌های اسکرپینگ وب وجود دارند که بر استفاده از تکنیک‌هایی در تجزیه DOM، بینایی رایانه و پردازش زبان طبیعی برای شبیه‌سازی مرور انسان برای فعال کردن جمع‌آوری محتوای صفحه وب برای تجزیه آفلاین متکی هستند. از آنجایی که وب‌سایت‌های کمتری در وب وجود داشت، موتورهای جستجو در آن زمان برای جمع‌آوری و قالب‌بندی پیوندها به مدیران انسانی متکی بودند. از آن زمان، بسیاری از وب سایت‌ها APIهای وب را برای دسترسی افراد به پایگاه داده عمومی خود ارائه می‌دهند. تکنیک خراش وب فرایند استخراج خودکار داده‌ها یا جمع‌آوری اطلاعات از شبکه جهانی وب است. این حوزه ای با پیشرفت‌های فعال است که هدف مشترکی با چشم‌انداز وب معنایی دارد، یک ابتکار بلندپروازانه که هنوز به پیشرفت‌هایی در پردازش متن، درک معنایی، هوش مصنوعی و تعامل انسان و رایانه نیاز دارد. کپی و پیست انسانی ساده‌ترین شکل وب اسکرپینگ، کپی و چسباندن دستی داده‌ها از یک صفحه وب در یک فایل متنی یا صفحه گسترده‌است. گاهی حتی بهترین فناوری گردآوری از وب نمی‌تواند جایگزین معاینه دستی انسان و کپی و چسباندن شود، و گاهی ممکن است این تنها راه حل قابل اجرا باشد زمانی که وب‌سایت‌های خراش دادن به صراحت موانعی را برای جلوگیری از اتوماسیون ماشین ایجاد می‌کنند. تطبیق الگوی متن یک رویکرد ساده و در عین حال قدرتمند برای استخراج اطلاعات از صفحات وب می‌تواند بر اساس دستور grep یونیکس یا امکانات تطبیق بیان منظم زبان‌های برنامه‌نویسی (مثلاً پرل یا پایتون) باشد. برنامه‌نویسی HTTP صفحات وب استاتیک و پویا را می‌توان با ارسال درخواست‌های HTTP به وب سرور راه دور با استفاده از برنامه‌نویسی سوکت بازیابی کرد. تجزیه HTML بسیاری از وب سایت‌ها دارای مجموعه‌های بزرگی از صفحات هستند که به صورت پویا از یک منبع ساختار یافته مانند پایگاه داده تولید می‌شوند. داده‌های یک دسته معمولاً توسط یک اسکریپت یا قالب مشترک در صفحات مشابه کدگذاری می‌شوند. در داده کاوی، برنامه ای که چنین قالب‌هایی را در یک منبع اطلاعاتی خاص شناسایی می‌کند، محتوای آن را استخراج می‌کند و آن را به شکل رابطه ای ترجمه می‌کند، wrapper نامیده می‌شود. | ## بخش 2: تراشیدن وب | تجزیه DOM با تعبیه یک مرورگر وب کامل، مانند اینترنت اکسپلورر یا کنترل مرورگر موزیلا، برنامه‌ها می‌توانند محتوای پویا تولید شده توسط اسکریپت‌های سمت سرویس گیرنده را بازیابی کنند. این کنترل‌های مرورگر همچنین صفحات وب را به یک درخت DOM تجزیه می‌کنند، که بر اساس آن برنامه‌ها می‌توانند بخش‌هایی از صفحات را بازیابی کنند. این پلتفرم‌ها تعداد زیادی «ربات» را برای عمودهای خاص بدون «مرد در حلقه» (بدون دخالت مستقیم انسان)، و هیچ کار مرتبط با یک سایت هدف خاص ایجاد و نظارت می‌کنند. آماده‌سازی شامل ایجاد پایگاه دانش برای کل عمودی است و سپس پلت فرم به‌طور خودکار ربات‌ها را ایجاد می‌کند. استحکام پلتفرم با کیفیت اطلاعاتی که بازیابی می‌کند (معمولاً تعداد فیلدها) و مقیاس‌پذیری آن (چقدر سریع می‌تواند به صدها یا هزاران سایت برسد) اندازه‌گیری می‌شود. این مقیاس‌پذیری بیشتر برای هدف قرار دادن Long Tail از سایت‌هایی استفاده می‌شود که جمع‌آوری‌کننده‌های معمولی آن‌ها را پیچیده یا بسیار سخت برای برداشت محتوا می‌دانند. تشخیص حاشیه نویسی معنایی صفحاتی که خراشیده می‌شوند ممکن است دارای متادیتا یا نشانه گذاری‌های معنایی و حاشیه نویسی باشند که می‌توانند برای مکان‌یابی تکه‌های داده خاص استفاده شوند. در موردی دیگر، حاشیه نویسی‌ها که در یک لایه معنایی سازماندهی شده‌اند، به‌طور جداگانه از صفحات وب ذخیره و مدیریت می‌شوند، بنابراین اسکراپرها می‌توانند طرح داده‌ها و دستورالعمل‌ها را قبل از خراش دادن صفحات از این لایه بازیابی کنند. تجزیه و تحلیل صفحه وب بینایی کامپیوتری تلاش‌هایی با استفاده از یادگیری ماشین و بینایی رایانه‌ای وجود دارد که تلاش می‌کند با تفسیر بصری صفحات مانند یک انسان، اطلاعات را از صفحات وب شناسایی و استخراج کند. نرم‌افزار ابزارهای نرم‌افزاری زیادی وجود دارد که می‌توان از آنها برای سفارشی کردن راه حل‌های خراش وب استفاده کرد. این نرم‌افزار ممکن است سعی کند ساختار داده‌های یک صفحه را به‌طور خودکار تشخیص دهد یا یک رابط ضبط ارائه کند که نیاز به نوشتن دستی کدهای اسکرپینگ یا برخی از توابع اسکریپت‌نویسی را که می‌توانند برای استخراج و تبدیل محتوا مورد استفاده قرار گیرند، و رابط‌های پایگاه‌داده‌ای که می‌توانند ذخیره کنند را برطرف کند. داده‌های خراشیده شده در پایگاه‌های داده محلی برخی از نرم‌افزارهای scraping وب نیز می‌توانند برای استخراج مستقیم داده‌ها از یک API استفاده شوند. به‌طور کلی، گردآوری از وب ممکن است بر خلاف شرایط استفاده برخی از وب سایت‌ها باشد، اما قابل اجرا بودن این شرایط نامشخص است. ایالات متحده در ایالات متحده، صاحبان وب‌سایت‌ها می‌توانند از سه ادعای حقوقی اصلی برای جلوگیری از حذف ناخواسته وب استفاده کنند: (۱) نقض حق چاپ (تدوین)، (۲) نقض قانون تقلب و سوء استفاده رایانه‌ای ("CFAA") و (۳) تجاوز چرت زدن. با این حال، اثربخشی این ادعاها متکی بر رعایت معیارهای مختلف است و رویه قضایی هنوز در حال تحول است. به عنوان مثال، با توجه به حق چاپ، در حالی که تکرار آشکار عبارت اصلی در بسیاری از موارد غیرقانونی است، در ایالات متحده دادگاه‌ها در انتشارات Feist v. دادگاه‌های ایالات متحده اذعان کرده‌اند که کاربران «خراشنده‌ها» یا «ربات‌ها» ممکن است در قبال ارتکاب تجاوز به خانه‌ها مسئول شناخته شوند، که شامل خود یک سیستم رایانه‌ای به عنوان دارایی شخصی تلقی می‌شود که کاربر خراش‌دهنده به آن تجاوز می‌کند. با این حال، برای موفقیت در ادعای تجاوز به اموال، شاکی باید نشان دهد که مدعی علیه عمداً و بدون مجوز با منافع مالکانه شاکی در سیستم رایانه ای تداخل کرده و استفاده غیرمجاز متهم باعث خسارت به شاکی شده‌است. همه پرونده‌های عنکبوت وب که در دادگاه‌ها مطرح شده‌اند، تجاوز به مالکان تلقی نشده‌اند. AA با موفقیت دستوری را از یک دادگاه محاکمه تگزاس دریافت کرد و FareChase را از فروش نرم‌افزاری که به کاربران امکان می‌دهد در صورتی که نرم‌افزار وب سایت AA را جستجو کند، قیمت‌های آنلاین را مقایسه کنند، متوقف کرد. شرکت هواپیمایی ساوت وست، خراش دادن صفحه را غیرقانونی دانسته‌است زیرا نمونه ای از «تقلب و سوء استفاده رایانه ای» است و منجر به «آسیب و ضرر» و «دسترسی غیرمجاز» به سایت Southwest شده‌است. آنها همچنین ادعا کردند که خراش دادن صفحه نمایش چیزی است که از نظر قانونی به عنوان «اختلاس و غنی سازی ناعادلانه» شناخته می‌شود، و همچنین نقض توافق کاربر وب سایت است. Outtask همه این ادعاها را رد کرد و ادعا کرد که قانون حاکم، در این مورد، باید قانون حق نسخه برداری ایالات متحده باشد و طبق حق چاپ، قطعات اطلاعاتی که خراشیده می‌شوند مشمول حمایت حق نسخه برداری نمی‌شوند. اگرچه اینها تصمیمات اولیه حذف هستند و تئوری‌های مسئولیت یکسان نیستند، اما نادیده گرفتن الگویی که دادگاه‌ها آمادگی دارند از محتوای اختصاصی سایت‌های تجاری در برابر استفاده‌هایی که برای صاحبان چنین سایت‌هایی نامطلوب است محافظت کنند دشوار است. با این حال، میزان حفاظت از چنین محتوایی مشخص نیست و به نوع دسترسی ایجاد شده توسط اسکراپر، میزان دسترسی و کپی کردن اطلاعات، میزان تأثیر نامطلوب دسترسی بر سیستم مالک سایت و انواع و نحوه آن بستگی دارد. ممنوعیت چنین رفتاری در حالی که قانون در این زمینه ثابت‌تر می‌شود، نهادهایی که در نظر دارند از برنامه‌های خراش دادن برای دسترسی به یک وب‌سایت عمومی استفاده کنند، باید با بررسی شرایط استفاده و سایر شرایط یا اعلامیه‌های ارسال شده در سایت یا در دسترس قرار گرفتن از طریق این سایت، در نظر بگیرند که آیا چنین اقدامی مجاز است یا خیر. ایونت‌برایت در دادگاه منطقه ای ایالات متحده برای ناحیه شرقی ویرجینیا، دادگاه حکم داد که شرایط استفاده باید در معرض توجه کاربران قرار گیرد تا قرارداد بسته‌بندی مرور یا مجوز اجرا شود. | ## بخش 3: تراشیدن وب | در یک پرونده در سال ۲۰۱۴، که در دادگاه منطقه ای ایالات متحده برای ناحیه شرقی پنسیلوانیا ثبت شد، سایت تجارت الکترونیک QVC به «خراش دادن سایت QVC برای داده‌های قیمت لحظه ای» توسط گردآورنده خرید مشابه Pinterest اعتراض کرد. QVC ادعا می‌کند که در نتیجه سایت خرده فروشی QVC را «بیش از حد خزیده» کرده‌است (به ادعای ارسال ۲۰۰–۳۰۰ درخواست جستجو به وب سایت QVC در دقیقه، گاهی تا ۳۶۰۰۰ درخواست در دقیقه) که باعث از کار افتادن سایت QVC برای دو روز و در نتیجه از دست رفتن فروش QVC می‌شود. شکایت QVC مدعی است که متهم خزنده وب خود را پنهان کرده تا آدرس IP منبع خود را پنهان کند و بنابراین از تعمیر سریع مشکل QVC جلوگیری کرده‌است. در وب سایت شاکی در طول مدت این محاکمه، لینک شرایط استفاده از بین تمامی لینک‌های سایت، در پایین صفحه به عنوان اکثر سایت‌های موجود در اینترنت نمایش داده می‌شود. دادگاه همچنین استدلال شاکی را رد کرد که محدودیت‌های مرور بسته‌بندی با توجه به تصویب قانون یکنواخت تراکنش‌های اطلاعات رایانه‌ای (UCITA) توسط ویرجینیا قابل اجرا بودند - قانونی یکسان که بسیاری معتقد بودند به نفع روش‌های قراردادی مرسوم مرور بسته‌بندی است. این پرونده در حال تجدید نظر است و بنیاد مرز الکترونیکی در سال ۲۰۱۵ یک گزارش مختصر ارائه کرد و خواستار لغو آن شد. بایگانی اینترنت تعداد قابل توجهی از صفحات وب در دسترس عموم را جمع‌آوری و توزیع می‌کند بدون اینکه در نظر گرفته شود که قوانین کپی رایت را نقض می‌کنند. اتحادیه اروپا در فوریه ۲۰۰۶، دادگاه تجاری و دریایی دانمارک (کپنهاگ) حکم داد که خزیدن سیستماتیک، نمایه سازی و پیوند عمیق توسط سایت پورتال سایت املاک با قوانین دانمارک یا دستورالعمل پایگاه داده اتحادیه اروپا در تضاد نیست. دادگاه عالی ایرلند در یک پرونده فوریه ۲۰۱۰ که به دلیل مسائل صلاحیتی پیچیده بود، حکمی صادر کرد که وضعیت نامطلوب در حال توسعه رویه قضایی را نشان می‌دهد. برخلاف یافته‌های دادگاه منطقه‌ای ایالات متحده در ناحیه شرقی ویرجینیا و یافته‌های دادگاه دریایی و تجاری دانمارک، قاضی مایکل هانا حکم داد که لینک فوق به شرایط و ضوابط Ryanair به وضوح قابل مشاهده است و این مسئولیت را بر عهده کاربر گذاشته‌است که موافقت با شرایط و ضوابط به منظور دسترسی به خدمات آنلاین برای تشکیل یک رابطه قراردادی کافی است. در ۳۰ آوریل ۲۰۲۰، سازمان حفاظت از داده‌های فرانسه (CNIL) دستورالعمل‌های جدیدی را در مورد وب اسکرپینگ منتشر کرد. دستورالعمل‌های CNIL به وضوح نشان می‌دهد که داده‌های در دسترس عموم هنوز هم داده‌های شخصی هستند و بدون اطلاع شخصی که آن داده‌ها به او تعلق دارد، قابل استفاده مجدد نیستند. استرالیا در استرالیا، قانون هرزنامه ۲۰۰۳ برخی از اشکال برداشت وب را غیرقانونی می‌کند، اگرچه این فقط برای آدرس‌های ایمیل اعمال می‌شود. هند با باقی گذاشتن چند پرونده مربوط به نقض حقوق مالکیت معنوی، دادگاه‌های هند صریحاً در مورد قانونی بودن گردآوری از وب رای نداده‌اند. با این حال، از آنجایی که همه اشکال رایج قراردادهای الکترونیکی در هند قابل اجرا هستند، نقض شرایط استفاده که حذف داده‌ها را ممنوع می‌کند، نقض قانون قرارداد خواهد بود. همچنین قانون فناوری اطلاعات ۲۰۰۰ را که دسترسی غیرمجاز به یک منبع رایانه یا استخراج داده از یک منبع رایانه را جریمه می‌کند، نقض می‌کند. روش‌های جلوگیری از وب اسکرپینگ مدیر یک وب سایت می‌تواند از اقدامات مختلفی برای متوقف کردن یا کند کردن ربات استفاده کند. برخی از تکنیک‌ها عبارتند از: مسدود کردن یک آدرس IP به صورت دستی یا بر اساس معیارهایی مانند موقعیت جغرافیایی و DNSRBL. غیرفعال کردن هر گونه API سرویس وب که ممکن است سیستم وب سایت در معرض نمایش قرار دهد. ربات‌ها گاهی اعلام می‌کنند که چه کسی هستند (با استفاده از رشته‌های عامل کاربر) و می‌توانند بر این اساس با استفاده از robots.txt مسدود شوند. ربات‌ها را می‌توان با نظارت بر ترافیک اضافی مسدود کرد گاهی می‌توان ربات‌ها را با ابزارهایی مسدود کرد تا تأیید شود که یک شخص واقعی به سایت دسترسی دارد، مانند یک CAPTCHA. ربات‌ها گاهی برای شکستن الگوهای خاص CAPTCHA کدگذاری می‌شوند یا ممکن است از سرویس‌های شخص ثالثی استفاده کنند که از نیروی انسانی برای خواندن و پاسخگویی در زمان واقعی به چالش‌های CAPTCHA استفاده می‌کنند. خدمات تجاری ضد ربات: شرکت‌ها خدمات ضد ربات و ضد خراش را برای وب سایت‌ها ارائه می‌دهند. برخی از فایروال‌های برنامه وب دارای قابلیت‌های محدودی برای شناسایی ربات نیز هستند. مبهم سازی با استفاده از CSS sprites برای نمایش داده‌هایی مانند شماره تلفن یا آدرس ایمیل، به قیمت دسترسی به کاربران صفحه خوان. از آنجایی که ربات‌ها به یکپارچگی در کد فرانت‌اند یک وب‌سایت هدف متکی هستند، افزودن تغییرات کوچک به HTML/CSS پیرامون داده‌های مهم و عناصر ناوبری به مشارکت بیشتر انسان در راه‌اندازی اولیه یک ربات نیاز دارد و اگر به‌طور مؤثر انجام شود ممکن است گردآوری از وب سایت مورد نظر به دلیل کاهش توانایی در خودکارسازی فرایند خراش دادن بسیار دشوار است. وب‌سایت‌ها می‌توانند اعلام کنند که خزیدن در فایل robots.txt مجاز است یا نه و اجازه دسترسی جزئی را می‌دهند، سرعت خزیدن را محدود می‌کنند، زمان بهینه برای خزیدن را مشخص می‌کنند و موارد دیگر. | ## جمع‌بندی | داده‌های پایگاه داده را مستقیماً در HTML DOM از طریق AJAX بارگیری کنید، و از روش‌های DOM برای نمایش آن استفاده کنید، خزنده‌ها را مجبور می‌کند که آن درخواست‌های AJAX را بازتولید کنند یا از رندر مرورگر استفاده کنند (مثلاً یک مرورگر بدون سر).