IMPORTXML в Google Таблицах: как загрузить данные с сайта
IMPORTXML — функция Google Таблиц, которая загружает данные прямо со страницы сайта. Это самый простой способ «спарсить» несколько цен без программирования. Разберём синтаксис, примеры и ограничения.
Синтаксис
Формула принимает два аргумента — адрес страницы и выражение XPath, которое указывает, какой элемент взять:
=IMPORTXML("https://example.com/product/123"; "//span[@class='price']")
В русской локали аргументы разделяются точкой с запятой, в английской — запятой. Адрес удобно хранить в отдельной ячейке: =IMPORTXML(A2; "//h1") — тогда формулу можно протянуть на весь список товаров.
Как найти XPath нужного элемента
- Откройте страницу товара в Chrome.
- Нажмите правой кнопкой на цену → «Просмотреть код».
- Посмотрите тег и класс элемента, например
<span class="price-value">. - Составьте XPath:
//span[@class='price-value'].
Можно скопировать XPath через меню «Copy → Copy XPath», но такой путь часто слишком длинный и ломается при малейшем изменении страницы. Короткие выражения по классу или атрибуту надёжнее.
Полезные примеры XPath
| Что получить | XPath |
|---|---|
| Заголовок страницы | //title |
| Главный заголовок H1 | //h1 |
| Элемент по классу | //*[@class='price'] |
| Класс содержит слово | //*[contains(@class,'price')] |
| Meta description | //meta[@name='description']/@content |
| Все ссылки страницы | //a/@href |
| Значение атрибута (например, микроразметки) | //meta[@itemprop='price']/@content |
Последний пример особенно полезен: многие магазины размечают цену микроразметкой schema.org, и такой XPath работает стабильнее, чем поиск по классам оформления.
Превращаем текст в число
IMPORTXML часто возвращает цену как текст «24 990 ₸». Чтобы с ней можно было считать, уберите всё, кроме цифр:
=VALUE(REGEXREPLACE(IMPORTXML(A2; "//span[@class='price']"); "[^0-9]"; ""))
Для цен с копейками регулярное выражение нужно дополнить, чтобы сохранить десятичный разделитель.
Частые ошибки
- «Не удалось получить URL» — сайт не отдаёт страницу запросам Google или временно недоступен.
- «Импортированный контент пуст» — нужный элемент подгружается скриптом или XPath неверный.
- Загрузка… бесконечно — слишком много формул IMPORTXML в одной таблице; Google ограничивает такие запросы.
- Результат «разъехался» по ячейкам — XPath нашёл несколько элементов. Уточните выражение или оберните в
INDEX(...; 1).
Когда IMPORTXML не хватит
Функция хороша для десятка цен с простых сайтов. Она не подходит, если:
- данные подгружаются скриптами (большинство маркетплейсов);
- нужно собрать сотни или тысячи товаров;
- нужны цены по разным городам или от разных продавцов;
- важно точное время обновления и история цен.
В этих случаях лучше настроить сбор, который сам обновляет Google Таблицу по расписанию. Мы делаем это под ключ — см. выгрузка в Google Таблицы и мониторинг цен.
IMPORTXML: примеры использования для бизнеса
Список цен по ссылкам
В столбце A — ссылки на товары, в B — формула:
=IFERROR(VALUE(REGEXREPLACE(IMPORTXML(A2; "//meta[@itemprop='price']/@content"); "[^0-9.]"; "")); "нет данных")
Если магазин размечает цену микроразметкой, такая формула надёжнее поиска по классам оформления. IFERROR не даёт таблице «покраснеть» от ошибок.
Заголовки и описания страниц (для SEO)
=IMPORTXML(A2; "//title") и =IMPORTXML(A2; "//meta[@name='description']/@content") — быстрый аудит title и description по списку URL.
Все ссылки со страницы
=IMPORTXML(A2; "//a/@href") — выводит ссылки списком вниз. Полезно, чтобы получить ссылки на товары категории.
IMPORTXML не работает: разбор ошибок
| Сообщение | Что значит | Что делать |
|---|---|---|
| Imported content is empty / Импортированный контент пуст | XPath ничего не нашёл | Проверьте XPath; если цены нет в «Просмотре кода» (Ctrl+U) — данные подгружаются скриптом, формула их не увидит |
| Could not fetch url / Не удалось получить URL | Сайт не отдал страницу | Сайт может блокировать автоматические запросы; повторите позже или используйте другой способ |
| Ссылка недействительна | Ошибка в адресе | Проверьте, что адрес начинается с https:// и нет лишних пробелов |
| Resource at url contents exceeded maximum size | Страница слишком большая | Используйте другой источник или способ |
| Вечная «Загрузка…» | Слишком много формул | Сократите число IMPORTXML на листе, разнесите по файлам |
Как вставлять XPath в IMPORTXML правильно
- Внешние кавычки формулы — двойные, внутри XPath используйте одинарные:
"//div[@class='price']". - Если класс у элемента составной («price price--sale»), используйте
contains:"//*[contains(@class,'price')]". - Чтобы взять первое совпадение:
"(//span[@class='price'])[1]".
IMPORTXML в Excel: есть ли аналог
В Excel функции IMPORTXML нет. В Excel для Windows есть связка функций ВЕБСЛУЖБА (WEBSERVICE) и ФИЛЬТР.XML (FILTERXML): первая загружает содержимое по адресу, вторая извлекает данные по XPath. Работает она только с корректным XML, поэтому с обычными HTML-страницами часто не справляется. Для страниц с таблицами удобнее «Данные → Из Интернета» (Power Query) — см. Power Query.
Когда пора переходить с формул на сбор данных
- формул больше 50–100 и таблица постоянно «грузится»;
- часть сайтов отдаёт пустые значения;
- нужно хранить историю цен, а формула показывает только текущее значение;
- нужны маркетплейсы — там формулы практически не работают.
В этих случаях мы настраиваем сбор, который сам записывает данные в вашу Google Таблицу по расписанию — выгрузка в Google Таблицы.
Читайте также
Репрайсер: что это и как работает автоматическое изменение цен
Правила репрайсинга, нижняя граница цены и типичные ошибки.
Читать →Динамическое ценообразование: как это работает
Цена, которая меняется вслед за спросом и рынком, — принципы и риски.
Читать →Ценообразование: методы и как выбрать свой
Затратный, рыночный и ценностный подходы с примерами для торговли.
Читать →Как рассчитать наценку: формулы и примеры
Наценка и маржа — в чём разница и как считать в Excel.
Читать →Частые вопросы
Почему IMPORTXML возвращает пустой результат?
Чаще всего данные на странице подгружаются скриптом после открытия, а IMPORTXML видит только исходный HTML. Другая причина — неверный XPath или сайт не отдаёт страницу автоматическим запросам.
Как часто обновляется IMPORTXML?
Google обновляет такие формулы сам, примерно раз в час, но точное время не гарантируется. Принудительно обновить можно, изменив ячейку с адресом.
Почему IMPORTXML пишет «Импортированный контент пуст»?
XPath ничего не нашёл на странице. Либо выражение неверное, либо данные подгружаются скриптом после открытия страницы, а IMPORTXML видит только исходный HTML.
Есть ли IMPORTXML в Excel?
Нет. В Excel для Windows есть функции ВЕБСЛУЖБА и ФИЛЬТР.XML, но они работают только с корректным XML. Для страниц с таблицами используйте «Данные → Из Интернета».
Нужны данные для вашего бизнеса? Опишите задачу
Пришлите ссылку на сайт или маркетплейс и напишите, какие данные нужны. Мы оценим задачу, назовём срок и стоимость и покажем пример результата на ваших данных до оплаты.
- Ответим в течение рабочего дня
- Пробная выгрузка до начала работ
- Разовый сбор или регулярный отчёт по расписанию
- Только открытые источники — без персональных данных
Или напрямую: +7 705 277 80 80 · WhatsApp · info@life-com.kz