web-scrap-with-google-sheets

اسکرپ وب با گوگل شیت (+آموزش جامع)

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

برای همه ما پیش آمده که نیاز داشتیم که دیتای یک سایت را استخراج کنیم. اما اینکه بتوانیم دیتای یک سایت را به صورت لایو داشته باشیم؛ فوق العادس!

برای مثال، یک سایت فروشگاهی دارید. می‌خواهید لیست محصولات تمام رقبا خود را به صورت لایو داشته باشید و رصد کنید.

scrap-website-products

اما اگر ابزارهای اسکرپینگ وب ندارید. یا دانش کدنویسی مانند پایتون ندارند. این آموزش برای شماست…

اخیرا در قالب مشاور سئو برای خودم پیش آمد که:

  • وبسایت رقیب را باید آنالیز میکردیم.
  • بیش از ۱۵۰ محصول جدید را در ۱۵ صفحه مختلف باید دانلود میکردیم.
  • نام محصول و URL صفحه محصولات را نیاز داشتیم.
  • متا تایتل و متادیسکریپشن کنار عکس هر محصول را میخواستیم.

تصور کنید که اگر این کار را به صورت دستی میخواستیم انجام بدیم چه قدر طول می‌کشید؟

نه تنها وقت گیر است. بلکه با توجه به اینکه شخصی به صورت دستی این تعداد آیتم و صفحه را بررسی خواهد کند. مقداری خطای انسانی خواهیم داشت. همچنین دیتای ما استاتیک خواهد بود و هر ماه باید این کار تکرار کنیم. با دانش کد نویسی راه بهتر و آسان تر وجود داشته باشد.

اما خبر خوب این است که وبمسترهایی که دانش کد نویسی ندارند. از این پس میتوانند به راحتی وب اسکرپ کنند! بزارید به شما نشان
بدم که چگونه این کار را انجام دادیم.

IMPORT XML چیست؟

وارد Google Sheets شوید. از شما می خواهم که با تابع یا فانکشن IMPORT XML آشنا شوید.

طبق داکیومنت گوگل، IMPORTXML «داده‌ها را از انواع مختلف داده‌های ساختاریافته (structured data types) از جمله XML، HTML، CSV، TSV و فیدهای RSS و ATOM XML ایمپورت می‌کند».

به طور کلی، IMPORT XML تابعی است که به شما این امکان را می‌دهد که هر داده ای را از وب استخراج کنید. (هیچ دانش کدنویسی مورد نیاز نیست.)

به عنوان مثال، استخراج داده‌هایی از جمله متا تایتل، متا دیسکریپشن، لینک ها یا هر متن دیگه ای… (سریع و آسان)‎

بیشتر بخوانید!  درآمد مشاور سئو و متخصص SEO

آموزش IMPORT XML

خود تابع بسیار ساده است و فقط به دو پارامتر نیاز دارد:

  1. نشانی صفحه (URL) که قصد داریم اطلاعات را از آن استخراج کنیم.
  2. XPath عنصری که داده در آن قرار دارد.

importxml-command

XPath مخفف XML Path Language است. به طوری آدرس دقیق هر عنصر از وب است. میتوان با XPath هر عنصری را در یک صفحه پیدا کرد.

به عنوان مثال، برای استخراج عنوان صفحه از https://serplancer.com/seo/ ، از دستور زیر استفاده می‌کنیم:

=IMPORTXML(“https://serplancer.com/seo/”, “//title”)

این مقدار را برمی گرداند: سئو چیست؟ + سفارش خدمات سئو سرپ لنسر

یا اگر به دنبال متا دیسکریپشن این صفحه هستید، این دستور را امتحان کنید:

=IMPORTXML(“https://serplancer.com/seo/”,“//meta[@name=’description’]/@content”)

در اینجا لیست کوتاهی از برخی از رایج ترین و مفیدترین XPath برای شما آوردیم:

  • عنوان صفحه: //title
  • متا دیسکریپشن: //meta[@name=’description’]/@content
  • h1 صفحه: //h1
  • url صفحه: //@href
  • اگر تگ p داخل یک div را می‌خواهید. به این صورت است:
//div//p
  • اگر تمام چایلد های div را میخواهید. به این صورت است:
//div/*
  • اگر یک آیدی (ID) یا کلاس (Class) خاص را میخواهید از دستور زیر استفاده کنید:
//*[@id=”yourId”]//*[@class=”yourClass”]

اعتراف: از لحظه ای که IMPORT XML در Google Sheets را کشف کردیم. از همان زمان به یکی از سلاح‌های مخفی ما در اتوماسیون بسیاری از کارهای روزانه ما، از ایجاد کمپین تبلیغات گرفته تا آنالیز رقبا تبدیل شده است.

آموزش اسکرپ وب با گوگل شیت (قدم به قدم)

بیایید با یک مثال عملی امتحان کنیم.

به عنوان مثال چطور است که سایت دیجی‌کالا اسکرپ کنیم؟ صفحه “دسته بندی موبایل” نمونه خوبیه…
چه اطلاعاتی از صفحه میخواهیم؟ متا تایتل، متا دیسکریپشن، نام محصول، قیمت محصول و عکس محصول…

مرحله ۱: Google Sheet را باز میکنیم

ابتدا یک شیت جدید و خالی Google Sheets را باز می کنیم:

open-google-sheet

مرحله ۲: دستور IMPORT XML را وارد میکنیم

همانطور که گفتیم این دستور (IMPORT XML) 2 پارامتر دارد: ۱. آدرس صفحه ۲. Xpath عنصر مورد نظر

آدرس صفحه دسته بندی موبایل دیجی کالا:

https://www.digikala.com/search/category-mobile-phone/product-list/?page=1

اولین چیزی میخواهیم اسکرپ کنیم. متا تایتل صفحه است. لذا دستور به این صورت خواهد بود:

=IMPORTXML(“https://www.digikala.com/search/category-mobile-phone/product-list/?page=1″,”//title”)

scrap-meta-title

در اینجا شیت را راست چین و فونت را خوانا کردم. اسم شیت هم Digikala.com Products گذاشتم.

در ادامه متا دیسکریپشن را با دستور زیر اسکرپ می‌کنیم.

=IMPORTXML(“https://www.digikala.com/search/category-mobile-phone/product-list/?page=1″,”//meta[@name=’description’]/@content”)

scrap-meta-description

برای اینکه بتوانید هر سایتی را اسکرپ کنید. باید کامل Xpath را از بر بگیرید. به همین خاطر برای عمیق شدن بهتر است برگه تقلب Xpath را مطالعه بفرمایید.

خب بی‌معطلی لیست محصولات را اسکرپ کنیم. در مرحله اول لازم است Xpath نام محصولات را پیدا کنیم.

برای این کار باید روی تایتل نام محصولات inspect بگیریم.

how-to-inspect-1

how-to-inspect-2

همانطور که می‌بینید کلاس تایتل محصولات را پیدا کردیم. نام محصولات H2 که کلاس آن ellipsis-2 است. لذا دستور ما به این صورت خواهد بود:

=IMPORTXML(“https://www.digikala.com/search/category-mobile-phone/product-list/?page=1″,”//h2[contains(@class,’ellipsis-2′)]”)

digikala-product-class

لیست نام محصولات را در آوردیم. اکنون وقت این است که قیمت محصولات را داشته باشیم. همانطور مثل قبل inspect میگیریم و این بار Xpath قیمت محصولات را پیدا میکنیم و به این صورت خواهد بود:

=IMPORTXML(“https://www.digikala.com/search/category-mobile-phone/product-list/?page=1″,”//*[contains(@id,’plpLayoutContainer’)]/section/div/div/div/div/a/article/div/div/div/div/div[last()]/span”)

xpath-price-of-digikala-products

بیشتر بخوانید!  وب اسکرپینگ چیست؟ (Web Scraping)

طریقه اسکرپ عکس از وب‎

در مرحله آخر نیاز است که عکس محصولات را اسکرپ کنیم. نکته قابل توجه این است که نمی‌توان مستقیم عکس‌ها را اسکرپ کرد. برای این کار باید اول آدرس عکس (اتریبیوت src) را پیدا کنیم.

attribute-src-address-of-the-photo

لذا دستور ما برای اسکرپ آدرس عکس‌های محصولات به این صورت خواهد بود:

=IMPORTXML(“https://www.digikala.com/search/category-mobile-phone/product-list/?page=1″,”//img[contains(@class,’w-100 radius-medium’)]/@src”)

scrap-photo-address

با این کد URL عکس‌ها را استخراج کردیم. در مرحله آخر باید بتوانیم عکس‌ها را در گوگل شیت نمایش دهیم. لذا به دستور زیر نیاز خواهیم داشت:

=IMAGE

google-sheet-image-command

پارامتر این دستور URL عکس خواهد بود که از قبل آن را داریم. لذا حال سلولی (Cell) که آدرس‌ها در آن قرار دارند را انتخاب می‌کنیم.

google-sheet-image-command

به این صورت عکس ما در گوگل شیت نمایش خواهد شد. برای اینکه عکس های باقی را داشته باشیم. نیاز است که مربع پایین سلول را به پایین بکشیم.

google-sheet-image-command-3

در پایان استایل دهی می‌کنیم تا خواناتر شود. شیت ما به این صورت خواهد شد:

digikala-products-scrap

برای جمع بندی حتما یک بار خودتون از اول تا آخر برای یک سایت دیگر امتحان کنید. اگر سوالی یا نظری داشتید در کامنت همین مقاله بپرسید تا دیگران هم استفاده کنند؛ حتما جواب خواهم داد. این مقاله به کمک تعامل شما به مرور آپدیت خواهد شد. اگر دوست داشتید ممنون میشم به اشتراک بزارید.

8 دیدگاه دربارهٔ «اسکرپ وب با گوگل شیت (+آموزش جامع)»

  1. سلام. دوتا سوال
    ۱- این شیت، اتومات آپدیت میشه؟
    ۲- حتما باید بصورت دستی یوآرال وارد بشه؟ یعنی خودش نمیتونه اگر محصول جدیدی اضافه شد، محصول رو به این شیت اضافه کنه؟

    1. سلام دوست عزیز
      ۱. بله حسن استفاده از گوگل شیت هم همینه
      ۲. هر Url که بزارید؛ دقیقا هر محصولی در اون صفحه آپدیت بشه (هر تغییری در دیتا سایت اعمال بشه) در شیت شما هم اعمال میشه.

  2. نمیشه هر یو آر الی که تو سایت مپ اضافه شد، اون یوآرال اتومات بیاد تو شیت و مقادیرش دریافت بشه؟

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

اشتراک گذاری