Знаете ли, че е възможно да изтеглите данни от уебсайт с помощта на Google Таблици? Ето как можете да го направите.
Уеб скрапингът е мощна техника за извличане на информация от уебсайтове и автоматичното им анализиране. Въпреки че можете да направите това ръчно, това може да бъде досадна и отнемаща време задача. Инструментите за уеб скрапинг правят процеса по-бърз и по-ефективен, като през цялото време струват по-малко.
Интересното е, че Google Sheets има потенциала да бъде вашият универсален инструмент за уеб скрапиране, благодарение на функцията си IMPORTXML. С IMPORTXML можете лесно да събирате данни от уеб страници и да ги използвате за анализ, докладване или други задачи, управлявани от данни.
Функцията IMPORTXML в Google Таблици
Google Sheets предоставя вградена функция, наречена IMPORTXML, която ви позволява да импортирате данни от уеб формати като XML, HTML, RSS и CSV. Тази функция може да промени играта, ако искате да събирате данни от уебсайтове, без да прибягвате до сложно кодиране.
Ето основния синтаксис на IMPORTXML:
=IMPORTXML(url, xpath_query)
- URL адрес: URL адресът на уеб страницата, от която искате да изтеглите данни.
- xpath_query: XPath заявката, която дефинира данните, които искате да извлечете.
XPath (XML Path Language) е език, използван за навигиране на XML документи, включително HTML, което ви позволява да посочите местоположението на данните в HTML структура. Разбирането на XPath заявките е от съществено значение за правилното използване на IMPORTXML.
Разбиране на XPath
XPath предоставя различни функции и изрази за навигиране и филтриране на данни в HTML документ. Изчерпателното ръководство за XML и XPath е извън обхвата на тази статия, така че ще се задоволим с някои основни концепции за XPath:
- Избор на елемент: Можете да изберете елементи с помощта на / и // за обозначаване на пътища. Например, /html/body/div избира всички div елементи в тялото на документ.
- Избор на атрибут: За да изберете атрибути, можете да използвате @. Например, //@href избира всички href атрибути на страницата.
- Предикатни филтри: Можете да филтрирате елементи, като използвате предикати, затворени в квадратни скоби ([ ]). Например, /div[@class="container"] избира всички див елементи с класа контейнер.
- Функции: XPath предоставя различни функции, като напр съдържа(), започва с(), и текст() за извършване на конкретни действия като проверка за текстово съдържание или стойности на атрибути.
Как да извлечете XPath от уебсайт
Досега знаете синтаксиса на IMPORTXML, знаете URL адреса на уебсайта и знаете кой елемент искате да извлечете. Но как да получите XPath на елемента?
Не е нужно да знаете наизуст структурата на уебсайта, за да извлечете данните му с IMPORTXML. Всъщност всеки браузър разполага с изящен инструмент, който ви позволява незабавно да копирате XPath на всеки елемент.
Инструментът Inspect Element ви позволява да извличате XPath от елементи на уебсайт. Ето как:
- Отидете до уеб страницата, която искате да изтриете, като използвате предпочитания от вас уеб браузър.
- Намерете елемента, който искате да изстържете.
- Щракнете с десния бутон върху елемента.
- Изберете Инспектирай елемента от менюто с десен бутон. Вашият браузър ще отвори панел, който показва HTML кода на уеб страницата. Съответният HTML елемент ще бъде маркиран в кода.
- В панела Inspect Element щракнете с десния бутон върху маркирания елемент в HTML кода.
- Кликнете Копирайте XPath за да копирате XPath адреса на елемента в клипборда.
Сега, когато разполагате с всичко необходимо, е време да видите IMPORTXML в действие и да изтриете някои връзки.
Можете да използвате IMPORTXML, за да събирате всякакви данни от уебсайтове. Това включва връзки, видеоклипове, изображения и почти всеки елемент от уебсайта. Връзките са един от най-важните елементи в уеб анализа и можете да научите много за даден уебсайт само като анализирате страниците, към които той препраща.
IMPORTXML ви позволява бързо да изтривате връзки в Google Таблици и след това да ги анализирате допълнително, като използвате различните функции, предлагани от Google Таблици.
За да изтриете всички връзки от уеб страница, можете да използвате следната формула:
=IMPORTXML(url, "//a/@href")
Тази XPath заявка избира всички href атрибути на а елементи, като ефективно извлича всички връзки на страницата.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href")
Формулата по-горе изтрива всички връзки в статия в Wikipedia.
Добра идея е да въведете URL адреса на уеб страницата в отделна клетка и след това да препратите към тази клетка. Това ще предотврати вашата формула да стане твърде дълга и тромава. Можете да направите същото с XPath заявката.
2. Изтриване на всички текстове на връзки
За да извлечете текста на връзките заедно с техните URL адреси, можете да използвате:
=IMPORTXML(url, "//a")
Тази заявка избира всички елементи и можете да извлечете текста на връзката и URL адресите от резултатите.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a")
Формулата по-горе получава текстовете на връзката в същата статия в Wikipedia.
Понякога може да се наложи да изтриете конкретни връзки въз основа на критерии. Например, може да се интересувате от извличане на връзки, които съдържат определена ключова дума или връзки, които се намират в определен раздел на страницата.
С подходящи познания за XPath можете да посочите всеки елемент, който търсите.
За да изтриете връзки, които съдържат конкретна ключова дума, можете да използвате функцията contains() XPath:
=IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")
Тази заявка избира href атрибути на елементи, където href съдържа определената ключова дума.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")
Формулата по-горе изтрива всички връзки, които съдържат думата запис в техния текст в рамките на примерна статия в Wikipedia.
За да изтеглите връзки от конкретен раздел на страница, можете да посочите 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 Таблици.
Въпреки че Google Sheets и Excel споделят повечето си функции, фамилията функции IMPORT е уникална за Google Sheets. Ще трябва да обмислите други методи за импортиране на данни от уебсайтове в Excel.
Опростете уеб скрапирането с Google Таблици
Уеб скрапирането с Google Таблици и функцията IMPORTXML е многофункционален и достъпен начин за събиране на данни от уебсайтове.
Като овладеете XPath и разберете как да създавате ефективни заявки, можете да отключите пълния потенциал на IMPORTXML и да получите ценна информация от уеб ресурси. Така че, започнете да сканирате и пренесете своя уеб анализ на следващото ниво!