یک روش ساده، کاملا خودکار و بدون خطا برای استخراج دیتا از دنیای وب وجود دارد. شما میتوانید هر اطلاعاتی از هر سایتی به صورت زنده (Live) با استفاده از Google Sheets داشته باشید. این اطلاعات میتواند نام محصول، قیمت محصول یا عکس محصول باشد.
بعد از مطالعه این مقاله شما به راحتی میتوانید با تکنیک اسکرپ وب با گوگل شیت دیتای هر سایتی را به صورت زنده در موبایل یا کامپیوتر خود داشته باشید.
برای همه ما پیش آمده که نیاز داشتیم که دیتای یک سایت را استخراج کنیم. اما اینکه بتوانیم دیتای یک سایت را به صورت لایو داشته باشیم؛ فوق العادس!
برای مثال، یک سایت فروشگاهی دارید. میخواهید لیست محصولات تمام رقبا خود را به صورت لایو داشته باشید و رصد کنید.
اما اگر ابزارهای اسکرپینگ وب ندارید. یا دانش کدنویسی مانند پایتون ندارند. این آموزش برای شماست…
اخیرا در قالب مشاور سئو برای خودم پیش آمد که:
- وبسایت رقیب را باید آنالیز میکردیم.
- بیش از ۱۵۰ محصول جدید را در ۱۵ صفحه مختلف باید دانلود میکردیم.
- نام محصول و URL صفحه محصولات را نیاز داشتیم.
- متا تایتل و متادیسکریپشن کنار عکس هر محصول را میخواستیم.
تصور کنید که اگر این کار را به صورت دستی میخواستیم انجام بدیم چه قدر طول میکشید؟
نه تنها وقت گیر است. بلکه با توجه به اینکه شخصی به صورت دستی این تعداد آیتم و صفحه را بررسی خواهد کند. مقداری خطای انسانی خواهیم داشت. همچنین دیتای ما استاتیک خواهد بود و هر ماه باید این کار تکرار کنیم. با دانش کد نویسی راه بهتر و آسان تر وجود داشته باشد.
اما خبر خوب این است که وبمسترهایی که دانش کد نویسی ندارند. از این پس میتوانند به راحتی وب اسکرپ کنند! بزارید به شما نشان
بدم که چگونه این کار را انجام دادیم.
IMPORT XML چیست؟
وارد Google Sheets شوید. از شما می خواهم که با تابع یا فانکشن IMPORT XML آشنا شوید.
طبق داکیومنت گوگل، IMPORTXML «دادهها را از انواع مختلف دادههای ساختاریافته (structured data types) از جمله XML، HTML، CSV، TSV و فیدهای RSS و ATOM XML ایمپورت میکند».
به طور کلی، IMPORT XML تابعی است که به شما این امکان را میدهد که هر داده ای را از وب استخراج کنید. (هیچ دانش کدنویسی مورد نیاز نیست.)
به عنوان مثال، استخراج دادههایی از جمله متا تایتل، متا دیسکریپشن، لینک ها یا هر متن دیگه ای… (سریع و آسان)
آموزش IMPORT XML
خود تابع بسیار ساده است و فقط به دو پارامتر نیاز دارد:
- نشانی صفحه (URL) که قصد داریم اطلاعات را از آن استخراج کنیم.
- XPath عنصری که داده در آن قرار دارد.
XPath مخفف XML Path Language است. به طوری آدرس دقیق هر عنصر از وب است. میتوان با XPath هر عنصری را در یک صفحه پیدا کرد.
به عنوان مثال، برای استخراج عنوان صفحه از https://serplancer.com/seo/ ، از دستور زیر استفاده میکنیم:
این مقدار را برمی گرداند: سئو چیست؟ + سفارش خدمات سئو سرپ لنسر
یا اگر به دنبال متا دیسکریپشن این صفحه هستید، این دستور را امتحان کنید:
در اینجا لیست کوتاهی از برخی از رایج ترین و مفیدترین XPath برای شما آوردیم:
- عنوان صفحه: //title
- متا دیسکریپشن: //meta[@name=’description’]/@content
- h1 صفحه: //h1
- url صفحه: //@href
- اگر تگ p داخل یک div را میخواهید. به این صورت است:
- اگر تمام چایلد های div را میخواهید. به این صورت است:
- اگر یک آیدی (ID) یا کلاس (Class) خاص را میخواهید از دستور زیر استفاده کنید:
اعتراف: از لحظه ای که IMPORT XML در Google Sheets را کشف کردیم. از همان زمان به یکی از سلاحهای مخفی ما در اتوماسیون بسیاری از کارهای روزانه ما، از ایجاد کمپین تبلیغات گرفته تا آنالیز رقبا تبدیل شده است.
آموزش اسکرپ وب با گوگل شیت (قدم به قدم)
بیایید با یک مثال عملی امتحان کنیم.
به عنوان مثال چطور است که سایت دیجیکالا اسکرپ کنیم؟ صفحه “دسته بندی موبایل” نمونه خوبیه…
چه اطلاعاتی از صفحه میخواهیم؟ متا تایتل، متا دیسکریپشن، نام محصول، قیمت محصول و عکس محصول…
مرحله ۱: Google Sheet را باز میکنیم
ابتدا یک شیت جدید و خالی Google Sheets را باز می کنیم:
مرحله ۲: دستور IMPORT XML را وارد میکنیم
همانطور که گفتیم این دستور (IMPORT XML) 2 پارامتر دارد: ۱. آدرس صفحه ۲. Xpath عنصر مورد نظر
آدرس صفحه دسته بندی موبایل دیجی کالا:
اولین چیزی میخواهیم اسکرپ کنیم. متا تایتل صفحه است. لذا دستور به این صورت خواهد بود:
در اینجا شیت را راست چین و فونت را خوانا کردم. اسم شیت هم Digikala.com Products گذاشتم.
در ادامه متا دیسکریپشن را با دستور زیر اسکرپ میکنیم.
برای اینکه بتوانید هر سایتی را اسکرپ کنید. باید کامل Xpath را از بر بگیرید. به همین خاطر برای عمیق شدن بهتر است برگه تقلب Xpath را مطالعه بفرمایید.
خب بیمعطلی لیست محصولات را اسکرپ کنیم. در مرحله اول لازم است Xpath نام محصولات را پیدا کنیم.
برای این کار باید روی تایتل نام محصولات inspect بگیریم.
همانطور که میبینید کلاس تایتل محصولات را پیدا کردیم. نام محصولات H2 که کلاس آن ellipsis-2 است. لذا دستور ما به این صورت خواهد بود:
لیست نام محصولات را در آوردیم. اکنون وقت این است که قیمت محصولات را داشته باشیم. همانطور مثل قبل inspect میگیریم و این بار Xpath قیمت محصولات را پیدا میکنیم و به این صورت خواهد بود:
طریقه اسکرپ عکس از وب
در مرحله آخر نیاز است که عکس محصولات را اسکرپ کنیم. نکته قابل توجه این است که نمیتوان مستقیم عکسها را اسکرپ کرد. برای این کار باید اول آدرس عکس (اتریبیوت src) را پیدا کنیم.
لذا دستور ما برای اسکرپ آدرس عکسهای محصولات به این صورت خواهد بود:
با این کد URL عکسها را استخراج کردیم. در مرحله آخر باید بتوانیم عکسها را در گوگل شیت نمایش دهیم. لذا به دستور زیر نیاز خواهیم داشت:
پارامتر این دستور URL عکس خواهد بود که از قبل آن را داریم. لذا حال سلولی (Cell) که آدرسها در آن قرار دارند را انتخاب میکنیم.
به این صورت عکس ما در گوگل شیت نمایش خواهد شد. برای اینکه عکس های باقی را داشته باشیم. نیاز است که مربع پایین سلول را به پایین بکشیم.
در پایان استایل دهی میکنیم تا خواناتر شود. شیت ما به این صورت خواهد شد:
برای جمع بندی حتما یک بار خودتون از اول تا آخر برای یک سایت دیگر امتحان کنید. اگر سوالی یا نظری داشتید در کامنت همین مقاله بپرسید تا دیگران هم استفاده کنند؛ حتما جواب خواهم داد. این مقاله به کمک تعامل شما به مرور آپدیت خواهد شد. اگر دوست داشتید ممنون میشم به اشتراک بزارید.
سلام. دوتا سوال
۱- این شیت، اتومات آپدیت میشه؟
۲- حتما باید بصورت دستی یوآرال وارد بشه؟ یعنی خودش نمیتونه اگر محصول جدیدی اضافه شد، محصول رو به این شیت اضافه کنه؟
سلام دوست عزیز
۱. بله حسن استفاده از گوگل شیت هم همینه
۲. هر Url که بزارید؛ دقیقا هر محصولی در اون صفحه آپدیت بشه (هر تغییری در دیتا سایت اعمال بشه) در شیت شما هم اعمال میشه.
متاسفانه این تغییر اعمال نمیشه و باید مجدد کوئریش وارد بشه تا رفرش انجام بشه
بله صفحرو رفرش کنید بعد Force reload بزنید درست میشه
نمیشه هر یو آر الی که تو سایت مپ اضافه شد، اون یوآرال اتومات بیاد تو شیت و مقادیرش دریافت بشه؟
چرا اتفاقا میشه! ایده جالبی هم هست. تست کنید نتیجشم بگید
خیلی عالی بود
خداروشکر که دوست داشتید
ممنون من استفاده کردم مرسی از مقاله خوبت
سلام وقت بخیر خداروشکر که مفید بوده
باسلام و ممنون از مطالب مفیدتون
هیچکدوم از کدهای ایمپورت درست کار نمیکنه و خطای formula parse error میده
سلام وقت بخیر
فرمول درست انجام ندید. معمولا سر ” و , اشتباه انجام میشه