معرفی وب اسکرپینگ به زبان ساده
هر انچه که باید در مورد وب اسکرپینگ بدانید
وب اسکرپینگ یا Web Scraping روشی برای استخراج مقادیر زیادی از داده های وب سایت ها می باشد که با استفاده از این روش می توان داده ها را در یک فایل محلی در رایانه خود و یا به صورت جدولی در پایگاه داده به صورت قالب صفحه گسترده (spreadsheet) ذخیره کرد.
داده های نمایش داده شده توسط اکثر وب سایت ها فقط با استفاده از یک مرورگر وب قابل مشاهده می باشند و آنها عملکردی برای ذخیره یک نسخه از این داده ها برای استفاده شخصی ارائه نمی دهند.
مقاله پییشنهادی : برنامه نویسی سیستمی چیست و چه کاربردی دارد
تنها گزینه های copy و paste وجود دارد که به صورت دستی انجام می شوند که کار بسیار خسته کننده ای است و می تواند ساعت ها و گاهی اوقات روزها به طول انجامد. وب اسکرپینگ یک تکنیک اتوماسیون این فرایند می باشد، به طوری که به جای کپی کردن اطلاعات وب سایت ها با استفاده از نرم افزارهای Web Scraping در کسری از زمان می توان همین کار را انجام داد.
پروتکل انتقال Hypertext
نرم افزار Web Scraping ممکن است مستقیما با استفاده از پروتکل انتقال Hypertext و یا از طریق مرورگر وب به شبکه جهانی وب دسترسی پیدا کند در صورتی که Web Scraping توسط کاربر نرم افزار به صورت دستی انجام می شود و معمولا این فرایندها به صورت خودکار با استفاده از یک ربات و یا خزنده وب (Web Scraping) اجرا می شوند.
صفحات وب معمولا با استفاده از زبان های نشانگر مبتنی بر متن (HTML و XHTML) ساخته می شوند و غالباً حاوی تعداد زیادی داده مفید در قالب متن هستند.
با این حال اکثر صفحات وب برای کاربران نهایی طراحی شده اند و نه برای سهولت در استفاده خودکار. یک web scraper یک رابط برنامه نویسی برنامه (API) برای استخراج داده ها از یک وب سایت می باشد.
مقاله پییشنهادی : آیا برنامه نویسی شغل پردرآمدی است؟
شرکت هایی از قبیل آمازون AWS و گوگل ابزارهای Web Scraping، خدمات و داده های عمومی را در اختیار کاربران نهایی قرار می دهند.
فرم های جدیدتر وب اسکرپینگ از قبیل گوش دادن به اطلاعات مربوط به سرورهای وب می باشد. به عنوان مثال JSON معمولا به عنوان مکانیسم ذخیره سازی و انتقال داده ها بین کلاینت و سرور وب استفاده می شود.
ساختار وب اسکرپینگ
ساختار Web Scraping به گونه ای طراحی شده است که از طریق پایگاه داده های سطح وب می توان اطلاعات را استخراج کرد.
Web Scraping دارای ابزارهای مختلفی می باشد که هر کدام از این ابزارهای از تعداد ربات استفاده می کنند و هر کدام از این ربات ها کاری را انجام می دهند که به عنوان مثال به شرح زیر می باشد:
- شناسایی HTML منحصر به فرد یک سایت
- استخراج و تبدیل محتوا
- ذخیره اطلاعات استخراج شده
- استخراج داده ها از طریق API ها
مقاله پییشنهادی : زبان برنامه نویسی perl چیست؟
مفهوم Web Scraping به بیان ساده
وب اسکرپینگ فرایند است که با استفاده از ابزار یا کتابخانه های خاص زبان های برنامه نویسی، کاربر می تواند یک صفحه وب را باز کند و بخواند و به سپس به تگ ها HTML درون آن صفحه و همچنین مقادیر و محتوای مربوط به هر تگ دسترسی پیدا کند پس همان طور که قبلا اشاره شد Web Scraping یک روش برای استخراج داده های وب می باشد که در منابع مختلف نام های معادلی برای این واژه وجود دارد که عبارتند از:
- Web Data Extractors
- Data Harvesters
- Crawling Tools
- Content Mining Tools
لذا Web Scraping روشی می باشد که ابتدا محتوای یک URL حاوی tag های اچ تی ام ال خوانده می شود و سپس طبق نیاز محتوای آن tag نیز دسترسی پیدا کرد.
مثلا برای دانلود تصاویر یک صفحه اینستاگرام باید به تگ img و قاعدتا مقدار ویژگی src تگ های img را دسترسی پیدا کرد.
کاربردهای وب اسکرپینگ
فرایند Web Scraping: به فرایندی جهت استخراج محتوا و داده ها از یک وب سایت با استفاده از ربات ها گفته می شود. Web Scraping علاوه بر محتوا می توان عناصر کدهای HTML را هم استخراج کند و هر زمان که لازم باشد می توان اطلاعات را منتشر کرد.
Web Scraping در بسیاری از کسب و کارهای اینترنتی مورد استفاده قرار می گیرد تا بتوان در اولین فرصت به داده های منتشر شده جدید دسترسی پیدا کرد. از جمله کاربرد Web Scraping می توان به موارد زیر اشاره کرد:
- از وب اسکرپینگ برای تجزیه و تحلیل و همچنین رتبه بندی سایت استفاده می شود.
- از Web Scraping برای تعیین قیمت محصولات خود با توجه به قیمت سایر فروشگاه ها استفاده می شود.
- شرکت های تحقیقاتی برای جمع آوری اطلاعات از رسانه های اجتماعی از وب اسکرپینگ استفاده می کنند.
- شرکت های فناوری املاک و مستغلات از Web Scraping برای واگذاری لیست املاک و مستغلات استفاده می کنند.
Web Scraping به عنوان جزئی از برنامه های مورد استفاده برای فهرست بندی وب، استخراج وب و داده کاوی، نظارت بر تغییر قیمت آنلاین و مقایسه قیمت، جمع آوری لیست های املاک و مستغلات،نظارت بر داده های آب و هوا، تشخیص تغییر وب سایت، تحقیق،پیگیری حضور و شهرت آنلاین ،mashup وب و ادغام داده های وب مورد استفاده قرار می گیرد.
عناصر وب اسکرپینگ
Web Scraping یک صفحه وب شامل واکشی آن و استخراج از آن است. واکشی یا Fetching همان دانلود یک صفحه می باشد که مرورگر هنگام مشاهده صفحه آن را انجام می دهد بنابراین خزنده وب (Web Scraping) یکی از مهمترین عناصر Web Scraping برای واکشی صفحات برای پردازش بعدی می باشد.
پس از به دست آوردن اطلاعات می توان آنها را استخراج کرد. محتوای یک صفحه ممکن است مورد جستجو، تجزیه و تحلیل قرار بگیرد. اسکرابرهای وب معمولاً چیزی را از صفحه می گیرند تا در مکانی دیگر از آن استفاده کنند.
مقاله پییشنهادی : برنامه نویسی اندروید با پایتون
چگونه می توان داده ها را با استفاده از نرم افزارهای Web Scraping از وب سایت ها استخراج کرد؟
یک نرم افزار وب اسکرپینگ به طور خودکار می تواند داده ها را از چندین صفحه وب سایت ها براساس نیاز کاربر دانلود و استخراج کند و یا می تواند برای وب سایت ساخته شده پیکربندی شود تا بتواند با هر وب سایتی کار کند.
از این رو به راحتی با کلیک کردن بر روی یک دکمه می توانید داده های موجود در وب سایت را در یک فایل در کامپیوتر خود ذخیره کنید.
اما مشکلی که در اکثر نرم افزارهای Web Scraping وجود دارد این است که تنظیم و استفاده از آنها بسیار مشکل می باشد.
کاربرد WebHarvy
از این رو WebHarvy برای حل این مشکل طراحی شده است و با این رابط کاربری بسیار بصری می توان در چند دقیقه استخراج داده ها از هر وب سایت را شروع کرد.
WebHarvy یک هدف است و وقتی بر روی Web Scraping کلیک می شود به شما این اجازه را می دهد که به راحتی بتوان داده ها از روی وب سایت ها استخراج کرد.
برخلاف سایر نرم افزارهای وب اسکریپنگ، WebHarvy می تواند پیکربندی شود تا بتوان داده های مورد نیاز را با استفاده از کلیک ماوس از وب سایت ها استخراج کرد.
وب اسکرپینگ با پایتون
ابتدا کار با یک صفحه وب دارای HTML به صورت پایه شروع می شود سپس نحوه انجام وب اسکرپینگ روی صفحات وب نشان داده خواهد شد. اولین کاری که برای اسکرپ کردن یک صفحه وب بایستی انجام داد، دانلود کردن آن صفحه می باشد که این کار را می توان از طریق کتابخانه Requests در پایتون انجام داد.
ویدیو پییشنهادی : آموزش وب اسکرپینگ با پایتون (web scraping)
جهت وب اسکرپینگ با پایتون بایستی ابتدا کتابخانه Requests یک درخواست Get به Web server ارسال کند که محتوای HTML صفحه وب مورد نظر را برای کاربر دانلود نماید. لازم به ذکر است که انواع مختلفی از درخواست ها وجود دارد که با استفاده از کتابخانه Requests در پایتون صورت می گیرد.
حال یک صفحه وب سایت با متد rewuest.get دانلود می شود و پس از اجرای درخواست شی request دریافت می شود که این شی دارای ویژگی status_code می باشد که در صورت موفق بودن دانلود یک صفحه وب این موضوع به کاربر اطلاع داده می شود و می توان محتوای یک صفحه را با استفاده از ویژگی content پرینت گرفت. برای شروع کار Web Scraping با پایتون تنها لازم است که چند خطا زیر را نوشت.
from bs4 import BeautifulSoup import requests url = "http://www.athleticvolume.com/programming/" content = requests.get(url) soup = BeautifulSoup(content.text) print(soup)
با استفاده از یکی از کدهای Web Scraping مانند کد فوق می توان به راحتی یک درخواست Get به یک URL ارسال کرد و سپس پاسخ را داخل یک شی قرار داد که نمایش نماش این شی باعث مشاهده کد سورس HTML برای آن URL می گردد و این روش یعنی گویی به صورت دستی به وب سایت مراجعه کرد و سپس روی گزینه View Source کلیک کرد.
ویدیو پییشنهادی : آموزش پایتون
مقیاس وب اسکرپینگ
روند Web Scraping معمولا شامل روبات عنکبوتی است که اسناد HTML را از وب سایت های مربوطه منتقل می کنند، محتوای مورد نیاز را براساس منطق کسب و کار استخراج می کنند و در نهایت آن را در یک قالب مشخص دخیره می کنند. این وبلاگ به عنوان یک مبانی اولیه در ساخت scrapper های با مقیاس بالا می باشد.
همان طور که می دانید که Web Scraping یک کار ساده می باشد اما مشکلاتی در مقیاس Web Scraping از قبیل مدیریت کد عنکبوت، جمع آوری داده ها و نگهداری داده ها در انبار داده ها وجود دارد که بایستی آنها را حل نمود.