آیا می دانستید که می توان داده ها را از یک وب سایت با استفاده از Google Sheets خراش داد؟ در اینجا نحوه انجام این کار آمده است.
Web scraping یک تکنیک قدرتمند برای استخراج اطلاعات از وب سایت ها و تجزیه و تحلیل خودکار آنها است. اگرچه می توانید این کار را به صورت دستی انجام دهید، اما می تواند کاری خسته کننده و وقت گیر باشد. ابزارهای خراش وب روند را سریعتر و کارآمدتر می کنند، در حالی که هزینه کمتری دارند.
جالب اینجاست که Google Sheets به لطف عملکرد IMPORTXML خود، این پتانسیل را دارد که ابزار حذف وب یک مرحله ای شما باشد. با IMPORTXML، میتوانید به راحتی دادهها را از صفحات وب پاک کنید و از آن برای تجزیه و تحلیل، گزارشدهی یا هر کار مبتنی بر داده استفاده کنید.
تابع IMPORTXML در Google Sheets
Google Sheets یک تابع داخلی به نام IMPORTXML ارائه می دهد که به شما امکان می دهد داده ها را از قالب های وب مانند XML، HTML، RSS و CSV وارد کنید. اگر میخواهید بدون استفاده از کدنویسی پیچیده، دادهها را از وبسایتها جمعآوری کنید، این عملکرد میتواند یک تغییر دهنده بازی باشد.
در اینجا نحو اصلی IMPORTXML آمده است:
=IMPORTXML(url, xpath_query)
- url: URL صفحه وب که می خواهید داده ها را از آن خراش دهید.
- xpath_query: کوئری XPath که داده هایی را که می خواهید استخراج کنید را تعریف می کند.
XPath (زبان مسیر XML) زبانی است که برای پیمایش اسناد XML از جمله HTML استفاده میشود و به شما امکان میدهد مکان دادهها را در ساختار HTML مشخص کنید. درک پرس و جوهای XPath برای استفاده صحیح از IMPORTXML ضروری است.
درک XPath
XPath توابع و عبارات مختلفی را برای پیمایش و فیلتر کردن داده ها در یک سند HTML فراهم می کند. راهنمای جامع XML و XPath فراتر از محدوده این مقاله است، بنابراین ما به برخی از مفاهیم ضروری XPath بسنده می کنیم:
- انتخاب عنصر: می توانید عناصر را با استفاده از / و // برای نشان دادن مسیرها انتخاب کنید. به عنوان مثال، /html/body/div تمام عناصر div را در بدنه یک سند انتخاب می کند.
- انتخاب ویژگی: برای انتخاب ویژگی ها می توانید از @ استفاده کنید. به عنوان مثال، //@href تمام ویژگی های href را در صفحه انتخاب می کند.
- فیلترهای محمول: می توانید عناصر را با استفاده از گزاره های محصور در پرانتز ([ ]) فیلتر کنید. به عنوان مثال، /div[@class=”container”] تمام عناصر div را با ظرف کلاس انتخاب می کند.
- توابع: XPath توابع مختلفی مانند contain()، starts-with() و text() را برای انجام اقدامات خاصی مانند بررسی محتوای متن یا مقادیر مشخصه ارائه می کند.
چگونه XPath را از یک وب سایت استخراج کنیم
تا اینجا، شما سینتکس IMPORTXML را می دانید، URL وب سایت را می دانید و می دانید کدام عنصر را می خواهید استخراج کنید. اما چگونه می توانید XPath عنصر را بدست آورید؟
برای استخراج داده های وب سایت با IMPORTXML، لازم نیست ساختار وب سایت را بطور خلاصه بدانید. در واقع، هر مرورگر دارای یک ابزار خوب است که به شما امکان می دهد فوراً XPath هر عنصر را کپی کنید.
ابزار Inspect Element به شما امکان می دهد XPath را از عناصر وب سایت استخراج کنید. در اینجا به این صورت است:
- با استفاده از مرورگر وب دلخواه خود به صفحه وبی بروید که می خواهید خراش دهید.
- عنصری را که می خواهید خراش دهید پیدا کنید.
- روی عنصر کلیک راست کنید.
- از منوی کلیک راست گزینه Inspect Element را انتخاب کنید. مرورگر شما پانلی را باز می کند که کد HTML صفحه وب را نمایش می دهد. عنصر HTML مربوطه در کد برجسته خواهد شد.
- در پنل Inspect Element، روی عنصر برجسته شده در کد HTML راست کلیک کنید.
- روی Copy XPath کلیک کنید تا آدرس XPath عنصر را در کلیپ بورد خود کپی کنید.
اکنون که همه آنچه را که نیاز دارید دریافت کرده اید، زمان آن رسیده است که IMPORTXML را در عمل ببینید و چند پیوند را پاک کنید.
نحوه خراش دادن پیوندها از یک وب سایت با IMPORTXML
می توانید از IMPORTXML برای خراش دادن انواع داده ها از وب سایت ها استفاده کنید. این شامل پیوندها، ویدیوها، تصاویر و تقریباً هر عنصری از وب سایت است. پیوندها یکی از برجسته ترین عناصر در تجزیه و تحلیل وب هستند و شما می توانید با تجزیه و تحلیل صفحاتی که وب سایت به آنها پیوند می دهد چیزهای زیادی در مورد آن بیاموزید.
IMPORTXML به شما امکان میدهد به سرعت پیوندها را در Google Sheets خراش دهید و سپس آنها را با استفاده از عملکردهای مختلف Google Sheets تجزیه و تحلیل کنید.
1. خراش دادن همه پیوندها
برای پاک کردن تمام پیوندها از یک صفحه وب، می توانید از فرمول زیر استفاده کنید:
=IMPORTXML(url, "//a/@href")
این پرس و جوی XPath تمام ویژگی های href یک عنصر را انتخاب می کند و به طور موثر تمام پیوندهای صفحه را استخراج می کند.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href")
فرمول بالا تمام پیوندهای یک مقاله ویکیپدیا را پاک میکند.
بهتر است URL صفحه وب را در یک سلول جداگانه وارد کنید و سپس به آن سلول مراجعه کنید. این باعث می شود فرمول شما بیش از حد طولانی و غیر قابل تحمل نشود. شما می توانید همین کار را با پرس و جو XPath انجام دهید.
2. خراش دادن همه متون پیوند
برای استخراج متن پیوندها به همراه URL آنها می توانید از:
=IMPORTXML(url, "//a")
این پرس و جو همه عناصر را انتخاب می کند و می توانید متن پیوند و URL ها را از نتایج استخراج کنید.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a")
فرمول بالا متون پیوند را در همان مقاله ویکیپدیا دریافت میکند.
نحوه خراش دادن پیوندهای خاص از یک وب سایت با IMPORTXML
گاهی اوقات، ممکن است لازم باشد پیوندهای خاصی را بر اساس معیارها خراش دهید. به عنوان مثال، ممکن است علاقه مند به استخراج پیوندهایی باشید که حاوی یک کلمه کلیدی خاص یا پیوندهایی هستند که در بخش خاصی از صفحه قرار دارند.
با دانش مناسب از XPath، می توانید هر عنصری را که به دنبال آن هستید مشخص کنید.
1. خراش دادن پیوندهای حاوی کلمه کلیدی
برای پاک کردن پیوندهایی که حاوی یک کلمه کلیدی خاص هستند، می توانید از تابع contain() XPath استفاده کنید:
=IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")
این کوئری ویژگی های href عناصری را انتخاب می کند که href حاوی کلمه کلیدی مشخص شده است.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")
فرمول بالا تمام پیوندهایی را که حاوی کلمه رکورد در متن خود در یک مقاله نمونه ویکیپدیا هستند، پاک میکند.
2. خراش دادن پیوندها در یک بخش
برای حذف پیوندها از یک بخش خاص از یک صفحه، می توانید XPath آن بخش را مشخص کنید. مثلا:
=IMPORTXML(url, "//div[@class='section']//a/@href")
این کوئری ویژگی های href عناصر را در عناصر div با کلاس “section” انتخاب می کند.
به طور مشابه، فرمول زیر تمام پیوندهای درون کلاس div را که دارای کلاس mw-content-container هستند انتخاب می کند:
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href")
شایان ذکر است که می توانید از IMPORTXML برای کارهایی بیشتر از خراش دادن وب استفاده کنید. میتوانید از خانواده توابع IMPORT برای وارد کردن جداول داده از وبسایتها به Google Sheets استفاده کنید.
اگرچه Google Sheets و Excel اکثر توابع خود را به اشتراک می گذارند، خانواده IMPORT توابع منحصر به فرد Google Sheets هستند. برای وارد کردن داده ها از وب سایت ها به اکسل باید روش های دیگری را در نظر بگیرید.
Scraping وب را با Google Sheets ساده کنید
خراش دادن وب با Google Sheets و تابع IMPORTXML یک روش همه کاره و در دسترس برای جمع آوری داده ها از وب سایت ها است.
با تسلط بر XPath و درک نحوه ایجاد پرس و جوهای مؤثر، می توانید پتانسیل کامل IMPORTXML را باز کنید و بینش های ارزشمندی را از منابع وب به دست آورید. بنابراین، شروع به خراشیدن کنید و تجزیه و تحلیل وب خود را به سطح بعدی ببرید!