دادهها، در دهه گذشته، به سوختی برای رشد کسب و کارها تبدیل شدهاند و اینترنت، منبع اصلی دادهها است؛ با ۵ میلیارد کاربر که در هر ثانیه، میلیاردها نقطه داده تولید میکنند.
تجزیه و تحلیل دادههای وب میتواند به کسب و کارها کمک کند تا بینشهایی را برای دستیابی به اهداف تجاری خود کشف کنند. با این حال، جمع آوری حجم زیادی از دادهها برای مشاغل آسان نیست. به ویژه برای آنهایی که هنوز فکر میکنند دکمه «صادر کردن به اکسل» (Export to Excel) و پردازش دستی، تنها گزینهی استخراج دادهها هستند.
وب اسکریپینگ (Web scraping)، کسب و کارها را قادر میسازد تا فرآیندهای جمع آوری دادههای وب را با استفاده از رباتها یا اسکریپتهای اتوماتیک با نام خزندههای وب (web crawlers)، خودکار کنند.
این مقاله از مجله همرویش، تمام جنبههای مهم وب اسکریپینگ، از جمله اینکه وب اسکریپینگ چیست، چرا اهمیت دارد، چگونه کار میکند، کاربردها و ابزارها و چشم انداز آن در فروش و خرید محصولات و خدمات را بررسی و مرور میکند.
web scraping چیست ؟
اسکریپینگ (scraping) در لغت به معنی خراش دادن یا ایجاد خراش است. وب اسکریپینگ، فرآیند استخراج دادهها از وب سایتها است. در واقع با وب اسکریپینگ، صفحات وب را خراش میدهیم تا اطلاعات مورد نیازمان را استخراج کنیم.
وب اسکریپینگ با نامهایی چون جمع آوری (collection) یا استخراج (extraction) دادههای وب، خراش دادن داده یا صفحه نمایش (data/screen scraping) و گاهی اوقات با نام خزش در وب (web crawling) نیز شناخته میشود.
چرا وب اسکریپینگ مهم و محبوب است؟
این محبوبیت نباید چندان تعجب آور باشد، زیرا وب اسکریپینگ چیزی ارزشمند را به ما ارائه میدهد که هیچ چیز یا شخص دیگری قادر به انجام آن نیست. وب اسکریپینگ، دادههای هر وبسایتی را به صورت ساختار یافته در اختیار ما قرار میدهد.
تحلیل (analytics) و خودکارسازی (automation)، دو گرایش بزرگ در بین مشاغل هستند و وب اسکریپینگ میتواند هر دو گرایش را فعال کند. در کنار اینها، وب اسکریپینگ دارای کاربردهای متعددی است که میتواند بر همه صنایع تأثیر بگذارد.
وب اسکریپینگ به کسب و کارها این امکان را میدهد تا:
- فرآیندهای جمع آوری دادهها را در مقیاسهای مختلف به صورت خودکار انجام دهند.
- منابع داده وب را قفل گشایی کنند که میتواند به کسب و کارها ارزش بدهد.
- تصمیمهای داده محور بگیرند.
همانطور که در تصویر مربوط به گوگل ترندز در بالا مشاهده شد، این عوامل، افزایش علاقه به وب اسکریپینگ را به خوبی توضیح میدهد.
به همراهان عزیز همرویشی پیشنهاد میکنم برای آشنایی بیشتر با اهمیت وب اسکریپینگ، مقاله زیر را مطالعه کنید:
وب اسکریپینگ __ راه های درآمدزایی از وب اسکریپینگ
مبانی و مفاهیم وب اسکریپینگ: وب اسکریپر و وب کراولر
مبنای وب اسکریپینگ بسیار ساده است و بر دو پایه اصلی استوار است: یک خزنده وب یا وب کراولر (web crawler) و یک خراش دهنده وب یا وب اسکریپر (web scraper).
خزنده وب، مثل یک اسب است که یک ارابه یا کالسکه را به دنبال خود میکشد. این ارابه، در واقع همان وب اسکریپر است.
در واقع خزنده وب، اسکریپر را در مسیر اینترنت هدایت میکند تا به جایی برسد که قرار است دادههای درخواستی را استخراج کند.
در ادامه، نحوه کار وب کراولر و وب اسکریپر را با هم بررسی میکنیم.
خزنده وب چیست ؟ (خزشگر وب یا web crawler)
یک خزنده وب، که به طور کلی به آن “اسپایدر” (عنکبوت) گفته میشود، یک هوش مصنوعی است که مانند شخصی که زمان زیادی در اختیار دارد، در اینترنت میچرخد و لینکهای مختلف را برای فهرست بندی و جستجوی محتوا با دنبال کردن پیوندها و کاوش، دنبال میکند.
در بسیاری از پروژهها، ابتدا محیط وب یا یک وبسایت خاص را «خزش» میکنند تا URLها (آدرس صفحات اینترنتی) را پیدا کنند. سپس آنها را به اسکریپر (scraper) خود منتقل میکنند تا دادههای موردنظر را استخراج کنند.
وب اسکریپر چیست ؟ (web scraper)
وب اسکریپر، ابزاری تخصصی است که برای استخراج دقیق و سریع دادهها از یک صفحه وب طراحی شده است. اسکریپرهای وب، بسته به پروژه، از نظر طراحی و پیچیدگی بسیار متفاوت هستند.
بخش مهمی از هر اسکریپر، مکان یاب (locator) یا انتخابگر (selector) داده هاست که برای یافتن دادههایی که میخواهید از فایل HTML استخراج کنید استفاده میشود – معمولاً XPath و CSS سلکتورها، regex یا ترکیبی از آنها مورد استفاده قرار میگیرند.
برای اینکه تفاوت وب اسکریپینگ و وب کراولینگ را بهتر درک کنید، به همرویشیهای عزیز پیشنهاد میکنم مقاله زیر را مطالعه کنید:
مقایسه وب کراولینگ و وب اسکریپینگ _____ فرق بین crawler و scraper
فرآیند وب اسکریپینگ چگونه است؟
فرآیند اسکریپینگ یک صفحه وب، شامل ارسال درخواست به صفحه و استخراج اطلاعات قابل خواندن توسط ماشین از آن است.
بطور کلی، این فرآیند شامل مراحل زیر است:
- شناسایی URLهای موردنظر (آدرس صفحات اینترنتی)
- ارسال درخواست برای این URLها به منظور دریافت کد HTML
- استفاده از مکان یاب یا سلکتورها برای شناسایی مکان المانها در کد HTML
- تجزیه رشته دادهای که حاوی اطلاعات است
- تبدیل دادههای استخراج شده به فرمت دلخواه
- انتقال دادههای استخراج شده به محلهای دلخواه (نظیر پایگاه داده) برای ذخیره داده ها
کاربردهای وب اسکریپینگ چیست؟
کاربردهای متداول وب اسکریپینگ عبارتند از:
- تجزیه و تحلیل دادهها و علم داده
- جمع آوری دادههای آموزشی برای یادگیری ماشین
- غنی سازی پایگاههای اطلاعاتی شرکتها
- بازاریابی و فروش
- مقایسه قیمت (به ویژه در تجارت الکترونیک)
- واکشی توضیحات محصول
- نظارت بر سئو
- ایجاد مسیر جذب و هدایت مشتری (lead generation)
- تست وب سایت
- نظارت بر احساسات و علایق مصرف کننده
- اخبار و مطبوعات
- جمع آوری مقالات خبری در مورد شرکت
- تجارت
- جمع آوری دادههای مالی
- استراتژی
- تحقیقات بازاری (market research)
هوشمندسازی قیمت (price intelligence) یکی از بزرگترین موارد استفاده برای وب اسکریپینگ است. استخراج اطلاعات و قیمت یک محصول از وبسایتهای تجارت الکترونیک و سپس هوشمندسازی آن، بخش مهمی از شرکتهای تجارت الکترونیک مدرن است که میخواهند بر اساس دادهها، تصمیمات بهتری برای قیمتگذاری و بازاریابی بگیرند.
هم رویش منتشر کرده است:
آموزش وب اسکریپینگ با پایتون از صفر ------- بسته مقدماتی
کاربردهای استخراج دادههای وب به همین جا ختم نمیشود. ابزارهای جمع آوری دادهها به طور گسترده در پیگیری اخبار و مشاهیر، روزنامه نگاری، نظارت بر SEO، تجزیه و تحلیل رقبا، بازاریابی مبتنی بر داده، مدیریت ریسک، مشاوره املاک، تحقیقات دانشگاهی و بسیاری موارد دیگر استفاده میشود.
ممنون که تا اینجای مقاله همراه ما بودید. برای آشنایی بیشتر و کامل تر با کاربردهای وب اسکریپینگ، پیشنهاد میکنم 2 مقاله زیر را مطالعه کنید:
ابزارهای وب اسکریپینگ
شما میتوانید به صورت دستی اطلاعات را ازهر صفحه وب، برش داده (cut) و در یک برگه یا سند دیگر جایگذاری (paste) کنید. اما اگر بخواهید اطلاعاتی را از صدها یا هزاران صفحه اینترنتی استخراج کنید، متوجه خواهید شد که این کار پر زحمت، زمان بر و مستعد خطا است.
یک ابزار وب اسکریپینگ، این فرآیند را خودکار میکند؛ دادههای وب مورد نیاز شما را به طور موثر استخراج میکند و آنها را در نوعی ساختار منظم سازماندهی شده برای ذخیره سازی و پردازش بیشتر قالب بندی میکند. ابزارهای متن باز، فرآیند وب اسکریپینگ را ارزانتر و استفاده شخصی را تسهیل میکنند.
پرکاربردترین ابزارهای وب اسکریپینگ عبارتند از:
بیوتیفول سوپ (BeautifulSoup)، سلنیوم (Selenium)، فریمورک اسکریپی (Scrapy) و Puppeteer.
ابزارهای وب اسکریپینگ میتوانند فریمورکهای بزرگی باشند که برای انواع کارهای اسکریپینگ معمولی طراحی شدهاند، اما در عین حال میتوانید از کتابخانههای برنامه نویسی همه منظوره نیز استفاده کنید و آنها را برای ایجاد یک اسکریپر ترکیب کنید.
به عنوان مثال:
ممکن است از یک کتابخانه – مانند کتابخانه Requests پایتون – استفاده و آن را با کتابخانه BeautifulSoup پایتون ترکیب کنید تا در نهایت دادهها را از صفحه خود استخراج کنید.
یا ممکن است از یک فریمورک اختصاصی استفاده کنید که یک کلاینت HTTP را با یک کتابخانه تجزیه HTML ترکیب میکند. یکی از نمونههای محبوب، فریمورک Scrapy است، یک کتابخانه متن باز است که برای نیازهای پیشرفته وب اسکریپینگ ایجاد شده است.
برای مثال، میتوان مجموعهای از نامها، امتیازدهی، بازیگران و رتبهبندی ۲۵۰ فیلم برتر IMDb را با خزیدن در فهرست فیلمهای برتر IMDb با ابزارهای متن باز مانند Scrapy تهیه کرد.
هم رویش منتشر کرده است:
آموزش Scrapy پروژه محور -- فریمورک اسکریپینگ و خزش در وب با پایتون!
کاربران میتوانند با استفاده از کتابخانههایی مانند سلنیوم، فرآیند خزیدن و استخراج اطلاعات را به صورت خودکار انجام دهند. در بیشتر مواقعی که یک فهرست در صفحه وجود دارد، تعداد صفحات بیشتر از آن چیزی است که در نگاه اول روی صفحه به کاربر نشان داده میشود. به عنوان مثال صفحاتی با “پیمایش بی نهایت” از این دسته هستند.
به عنوان مثال، فرض کنید که در حال جستجو در یوتیوب (YouTube) هستید. شما نمیتوانید تمام آنچه را که میخواهید تماشا کنید، در ویدیوهای فهرست شده در صفحه یوتیوب که بررسی میکردید، پیدا کنید. پس، باید روی دکمه “next” در انتهای صفحه کلیک کنید. سلنیوم به کاربران این امکان را میدهد که به صورت خودکار به این صفحات «بعدی» رفته و اطلاعات مورد نظر را در هر مورد در فهرست جستجو کنند.
برای آشنایی بیشتر و کاملتر با ابزارهای وب اسکریپینگ، مطالعه مقاله زیر را به شما عزیزان همرویشی پیشنهاد میکنم:
وب اسکریپینگ چیست ؟ ____ مقایسهی بهترین ابزارهای وب اسکریپینگ
آینده وب اسکریپینگ چگونه است؟
وب اسکریپینگ در حال تبدیل شدن به یک بازی موش و گربه بین صاحبان محتوا و استخراج کنندگان محتوا است که هر دو طرف، میلیاردها دلار برای غلبه بر اقدامات ایجاد شده توسط طرف مقابل هزینه میکنند. انتظار میرود هر دو طرف، از یادگیری ماشین برای ساخت سیستمهای پیشرفته تر استفاده کنند.
منابع متن باز، نقش بزرگتری در توسعه نرم افزار ایفا میکنند. همانطور که قبلا ذکر کردیم، محبوبیت پایتون نیز در حال افزایش و در حال حاضر بسیار بالا است. انتظار داریم کتابخانههای متن باز مانند سلنیوم، اسکریپی و بیوتیفول سوپ که روی پایتون کار میکنند، فرآیندهای خزیدن وب را در آینده نزدیک شکل دهند.
در کنار کتابخانههای متن باز، علاقه به هوش مصنوعی، آینده را برای وب اسکریپینگ روشنتر میکند. زیرا سیستمهای هوش مصنوعی به شدت به دادهها متکی هستند و جمعآوری خودکار دادهها میتواند فرآیند آموزش برنامههای مختلف هوش مصنوعی بر روی دادههای عمومی را سادهتر کند.
مسیر یادگیری وب اسکریپینگ از مقدماتی تا پیشرفته
اکنون که با مفاهیم مرتبط با وب اسکریپینگ و اهمیت آن آشنا شدیم، شاید سوال اصلی این باشد از کجا شروع کنیم؟
برای آغاز مسیر یادگیری وب اسکریپینگ، این فناوری جذاب و مدرن، پیشنهاد ما به شما این است:
قدم اول: زبان برنامه نویسی پایتون
از آنجا که اکثر ابزارها، کتابخانهها و فریمورکهای مربوط به وب اسکریپینگ، به زبان پایتون منتشر شدهاند، قدم اول یادگیری زبان برنامه نویسی پایتون است.
یادگیری زبان برنامه نویسی پایتون، علاوه بر حوزه وب اسکریپینگ، در بسیاری زمینههای دیگر کاربرد دارد. بنابراین اگر تاکنون با زبان پایتون آشنا نشدهاید، بدون فوت وقت به سراغ یادگیری آن بروید!
پیش از این آموزش پایتون از مقدماتی تا پیشرفته در هم رویش منتشر شد. فیلم معرفی آموزش پایتون را در زیر میتوانید مشاهده کنید:
دریافت کامل بسته آموزش پایتون از مقدماتی تا پیشرفته
قدم دوم: یادگیری مفاهیم اولیه وب اسکریپینگ
در این مقاله، تا حدودی با مفاهیم اولیه وب اسکریپینگ آشنا شدیم. مفاهیمی مثل اسکریپر، کراولر و … . اما برای ورود به دنیای وب اسکریپینگ، لازم است با ساختار وب و وبسایتها آشنا باشید. این که هر وبسایت اینترنتی، از چه اجزا و المانهایی تشکیل شده و برای دسترسی به این المانها و محتوای درون آنها، از چه ابزارهایی باید استفاده کنیم.
در آموزش مقدماتی وب اسکریپینگ، مفاهیم اولیه و پایهای وب اسکریپینگ، کتابخانههایی مانند BeautifulSoup و دسترسی به المانهای وبسایتها از طریق برخی سلکتورهای متداول به شما آموزش داده شده است. اگر هیچ آشنایی با وب اسکریپینگ ندارید، این آموزش میتواند شروع مناسبی برای ورود به دنیای وب اسکریپینگ باشد. ضمنا آموزش مقدماتی وب اسکریپینگ در همرویش موجود است. فیلم معرفی این آموزش را در زیر میتوانید مشاهده کنید:
دریافت کامل بسته مقدماتی آموزش وب اسکریپینگ
قدم سوم: وب اسکریپینگ پیشرفته و پیاده سازی پروژههای کاربردی
زمانی که با مفاهیم مقدماتی وب اسکریپینگ آشنا شدید، نوبت آن است که پا را فراتر بگذارید و با نحوه پیاده سازی پروژههای واقعی تر و حرفهای تر وب اسکریپینگ آشنا شوید. با کتابخانههایی مثل requests کار کنید و دادههای ارزشمند را از وبسایتهای فارسی یا انگلیسی استخراج کنید.
در این راستا، آموزش زیر را به شما پیشنهاد میکنیم. ابتدا به معرفی کتابخانه پرکاربرد requests میپردازیم که برای ارسال درخواست به وبسایتها از آن استفاده میشود. در ادامه، یاد میگیرید که چگونه اطلاعات را به صورت همزمان از چندین وبسایت با قالبهای مختلف (مثلا چند وبسایت فروشگاهی) استخراج کنید و در نتیجه امکان مقایسه دادهها برای شما فراهم میشود. ضمنا آموزش پیشرفته وب اسکریپینگ در همرویش منتشر شده است. فیلم معرفی این آموزش را در زیر میتوانید مشاهده کنید:
دریافت بسته کامل آموزش پیشرفته وب اسکریپینگ (ساخت خزنده و استخراج اطلاعات چند سایت همزمان)
قدم چهارم: آشنایی با ابزارهای حرفهای وب اسکریپینگ (فریمورک scrapy)
در کنار کتابخانههای متداول وب اسکریپینگ (مانند BeautifulSoup و Requests)، یک ابزار حرفهای برای این کار به زبان پایتون وجود دارد به نام فریمورک اسکریپی (scrapy). آشنایی با این ابزار، به شما کمک میکند تا فرایند وب اسکریپینگ و خصوصا وب کراولینگ را سریعتر، منظم تر و بهینه تر پیاده سازی کنید.
پیشنهاد ما به شما، آموزش پروژه محور زیر است. در این آموزش، علاوه بر یادگیری جامع مهمترین سلکتورهای xpath و css ، در قالب یک پروژه جذاب با فریمورک scrapy آشنا میشوید، اطلاعات فیلم ها و سریال های مختلف را از دل وبسایت imdb بیرون میکشید و پس از ترجمه عنوان فیلم ها به فارسی، آن ها را در فرمت های مختلف ذخیره می کنید. در پایان راهنمایی مسیر یادگیری وب اسکریپینگ، آموزش اسکریپی به صورت پروژه محور در همرویش موجود است. فیلم معرفی این آموزش را در زیر مشاهده کنید:
دریافت کامل بسته آموزش اسکریپی
قدم بعدی: به یادگیری ادامه دهید!
به شما تبریک میگویم! تا اینجای کار با مفاهیم متنوع و کاربردی وب اسکریپینگ آشنا شدهاید. اما که هنوز مطالب زیادی برای آموختن وجود دارد. با این حال، از چیزهایی که آموختهاید استفاده کنید، چیزهای جدیدتر را یاد بگیرید و پروژههای جذاب و کاربردی خودتان را پیاده سازی کنید.
دنیای وب اسکریپینگ، منتظر ایدههای خلاقانه شماست!
کلیدواژگان
web scraping چیست | وب اسکرپینگ چیست | web scraping what is | وب اسکریپینگ چیست | خزنده وب چیست | خزنده ی وب | خزنده در وب | web crawler چیست | خزشگر وب چیست | مسیر یادگیری وب اسکریپینگ | آموزش وب اسکریپینگ | آموزش web scraping | دوره وب اسکرپینگ
منابع
دوره های آموزشی مرتبط
- آموزش پیشرفته وب اسکریپینگ ــ ساخت خزنده چند سایت همزمان ۹۱,۰۰۰ تومان
- آموزش ساخت یک سایت خبرخوان ورزشی --- با جنگو و وب اسکرپینگ ۴۸,۰۰۰ تومان