Как спарсить данные с сайта в excel
Перейти к содержимому

Как спарсить данные с сайта в excel

  • автор:

Получение данных веб-страницы путем предоставления примеров

Получение данных с веб-страницы позволяет пользователям легко извлекать данные из веб-страниц. Однако часто данные на веб-страницах не находятся в простых таблицах, которые легко извлекать. Получение данных из таких страниц может быть сложным, даже если данные структурированы и согласованы.

Есть решение. С помощью функции «Получить данные из Интернета» можно по сути отображать данные Power Query, которые необходимо извлечь, предоставив один или несколько примеров в диалоговом окне соединителя. Power Query собирает другие данные на странице, которая соответствует вашим примерам. С помощью этого решения можно извлечь все виды данных из веб-страниц, включая данные, найденные в таблицах и других не табличных данных.

Get data from web by example.

Цены, перечисленные в изображениях, являются только для целей.

Использование получения данных из Интернета по примеру

Выберите веб-параметр в выборе соединителя, а затем выберите Подключение, чтобы продолжить.

В интернете введите URL-адрес веб-страницы, из которой вы хотите извлечь данные. В этой статье мы будем использовать веб-страницу Microsoft Store и покажем, как работает этот соединитель.

Если вы хотите продолжить, можно использовать URL-адрес Microsoft Store, который мы используем в этой статье:

Web dialog.

При нажатии кнопки «ОК» вы перейдете в диалоговое окно «Навигатор» , где отображаются все автоматически заданные таблицы на веб-странице. В приведенном ниже примере таблицы не найдены. Выберите » Добавить таблицу», используя примеры .

Navigator window.

Добавление таблицы с помощью примеров представляет интерактивное окно, в котором можно просмотреть содержимое веб-страницы. Введите примеры значений данных, которые требуется извлечь.

В этом примере вы извлеките имя и цену для каждой игры на странице. Это можно сделать, указав несколько примеров на странице для каждого столбца. При вводе примеров Power Query извлекает данные, соответствующие шаблону примеров записей с помощью алгоритмов интеллектуального извлечения данных.

data by example.

Предложения по значению включают только значения меньше или равно 128 символам длины.

Когда вы довольны данными, извлеченными на веб-странице, нажмите кнопку «ОК«, чтобы перейти к Редактор Power Query. Затем можно применить дополнительные преобразования или сформировать данные, например объединение этих данных с другими источниками данных.

applying more transformations.

См. также

  • Добавление столбца из примеров
  • Фигура и объединение данных
  • Получение данных
  • Устранение неполадок соединителя Power Query Web

Парсинг нетабличных данных с сайтов

С загрузкой в Excel табличных данных из интернета проблем нет. Надстройка Power Query в Excel легко позволяет реализовать эту задачу буквально за секунды. Достаточно выбрать на вкладке Данные команду Из интернета (Data — From internet) , вставить адрес нужной веб-страницы (например, ключевых показателей ЦБ) и нажать ОК: Импорт данных с веб-страницы через Power Query
Power Query автоматически распознает все имеющиеся на веб-странице таблицы и выведет их список в окне Навигатора: Выбираем таблицу на сайте для импорта
Дальше останется выбрать нужную таблицу методом тыка и загрузить её в Power Query для дальнейшей обработки (кнопка Преобразовать данные) или сразу на лист Excel (кнопка Загрузить).
Если с нужного вам сайта данные грузятся по вышеописанному сценарию — считайте, что вам повезло.
К сожалению, сплошь и рядом встречаются сайты, где при попытке такой загрузки Power Query «не видит» таблиц с нужными данными, т.е. в окне Навигатора попросту нет этих Table 0,1,2. или же среди них нет таблицы с нужной нам информацией. Причин для этого может быть несколько, но чаще всего это происходит потому, что веб-дизайнер при создании таблицы использовал в HTML-коде страницы не стандартную конструкцию с тегом , а её аналог — вложенные друг в друга теги-контейнеры . Это весьма распространённая техника при вёрстке веб-сайтов, но, к сожалению, Power Query пока не умеет распознавать такую разметку и загружать такие данные в Excel. Тем не менее, есть способ обойти это ограничение 😉
В качестве тренировки, давайте попробуем загрузить цены и описания товаров с маркетплейса Wildberries — например, книг из раздела Детективы:
Детективы на Wildberries

Загружаем HTML-код вместо веб-страницы

Сначала используем всё тот же подход — выбираем команду Из интернета на вкладке Данные (Data — From internet) и вводим адрес нужной нам страницы: https://www.wildberries.ru/catalog/knigi/hudozhestvennaya-literatura/detektivy После нажатия на ОК появится окно Навигатора, где мы уже не увидим никаких полезных таблиц, кроме непонятной Document:
Навигатор без таблиц
Дальше начинается самое интересное. Жмём на кнопку Преобразовать данные (Transform Data) , чтобы всё-таки загрузить содержимое таблицы Document в редактор запросов Power Query. В открывшемся окне удаляем шаг Навигация (Navigation) красным крестом: Удаляем ненужный шаг Навигация
. и затем щёлкаем по значку шестерёнки справа от шага Источник (Source) , чтобы открыть его параметры:
Меняем тип файла
В выпадающием списке Открыть файл как (Open file as) вместо выбранной там по-умолчанию HTML-страницы выбираем Текстовый файл (Text file) . Это заставит Power Query интерпретировать загружаемые данные не как веб-страницу, а как простой текст, т.е. Power Query не будет пытаться распознавать HTML-теги и их атрибуты, ссылки, картинки, таблицы, а просто обработает исходный код страницы как текст.
После нажатия на ОК мы этот HTML-код как раз и увидим (он может быть весьма объемным — не пугайтесь):
Исходный код страницы в Power Query

Ищем за что зацепиться

Изучаем исходный код

Теперь нужно понять на какие теги, атрибуты или метки в коде мы можем ориентироваться, чтобы извлечь из этой кучи текста нужные нам данные о товарах. Само-собой, тут всё зависит от конкретного сайта и веб-программиста, который его писал и вам придётся уже импровизировать. В случае с Wildberries, промотав этот код вниз до товаров, можно легко нащупать простую логику:

  • Строчки с ценами всегда содержат метку lower-price
  • Строчки с названием бренда — всегда с меткой brand-name c-text-sm
  • Название товара можно найти по метке goods-name c-text-sm

Иногда процесс поиска можно существенно упростить, если воспользоваться инструментами отладки кода, которые сейчас есть в любом современном браузере. Щёлкнув правой кнопкой мыши по любому элементу веб-страницы (например, цене или описанию товара) можно выбрать из контекстного меню команду Инспектировать (Inspect) и затем просматривать код в удобном окошке непосредственно рядом с содержимым сайта:

Инспектирование кода HTML на веб-странице

Фильтруем нужные данные

Теперь совершенно стандартным образом давайте отфильтруем в коде страницы нужные нам строки по обнаруженным меткам. Для этого выбираем в окне Power Query в фильтре [1] опцию Текстовые фильтры — Содержит (Text filters — Contains) , переключаемся в режим Подробнее (Advanced) [ 2] и вводим наши критерии:

Фильтруем нужные строки

Добавление условий выполняется кнопкой со смешным названием Добавить предложение [ 3] . И не забудьте для всех условий выставить логическую связку Или (OR) вместо И (And) в выпадающих списках слева [4] — иначе фильтрация просто не сработает.

После нажатия на ОК на экране останутся только строки с нужной нам информацией:

Отобранные строки

Чистим мусор

Останется почистить всё это от мусора любым подходящим и удобным лично вам способом (их много). Например, так:

  1. Удалить заменой на пустоту начальный тег: через команду Главная — Замена значений (Home — Replace values) .
  2. Разделить получившийся столбец по первому разделителю » > » слева командой Главная — Разделить столбец — По разделителю (Home — Split column — By delimiter) и затем ещё раз разделить получившийся столбец по первому вхождению разделителя » < " слева, чтобы отделить полезные данные от тегов:

Отделяем данные от HTML-тегов

Зачищенные данные

Разбираем блоки по столбцам

Если присмотреться, то информация о каждом отдельном товаре в получившемся списке сгруппирована в блоки по три ячейки. Само-собой, нам было бы гораздо удобнее работать с этой таблицей, если бы эти блоки превратились в отдельные столбцы: цена, бренд (издательство) и наименование.

Выполнить такое преобразование можно очень легко — с помощью, буквально, одной строчки кода на встроенном в Power Query языке М. Для этого щёлкаем по кнопке fx в строке формул (если у вас её не видно, то включите её на вкладке Просмотр (View) ) и вводим следующую конструкцию:

= Table.FromRows(List.Split( #»Замененное значение1″ [Column1.2.1] , 3 ))

Здесь функция List.Split разбивает столбец с именем Column1.2.1 из нашей таблицы с предыдущего шага #»Замененное значение1″ на кусочки по 3 ячейки, а потом функция Table.FromRows конвертирует получившиеся вложенные списки обратно в таблицу — уже из трёх столбцов:

Разобранная на 3 столбца таблица

Ну, а дальше уже дело техники — настроить числовые форматы столбцов, переименовать их и разместить в нужном порядке. И выгрузить получившуюся красоту обратно на лист Excel командой Главная — Закрыть и загрузить (Home — Close & Load. )

Загруженные в Excel данные с сайта

Вот и все хитрости 🙂

Ссылки по теме

  • Импорт курса биткойна с сайта через Power Query
  • Парсинг текста регулярными выражениями (RegExp) в Power Query
  • Параметризация путей к данным в Power Query

Парсер сайтов и файлов (парсинг данных с сайта в Excel)

Структура программы «Парсер сайтов»

Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.

Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными, разбиение значения на массив и обработка каждого элемента в отдельности, вывод характеристик в отдельные столбцы, автоматический поиск цены товара на странице, поддержка форматов JSON и XML).

В парсере сайтов поддерживается авторизация на сайтах, выбор региона, GET и POST запросы, приём и отправка Cookies и заголовков запроса, получение исходных данных для парсинга с листа Excel, многопоточность (до 200 потоков), распознавание капчи через сервис RuCaptcha.com, работа через браузер (IE), кеширование, рекурсивный поиск страниц на сайте, сохранение загруженных изображений товара под заданными именами в одну или несколько папок, и многое другое.

Поиск нужных данных на страницах сайта выполняется в парсере путем поиска тегов и/или атрибутов тегов (по любому свойству и его значению). Специализированные функции для работы с HTML позволяют разными способами преобразовывать HTML-таблицы в текст (или пары вида название-значение), автоматически находить ссылки пейджера, чистить HTML от лишних данных.

За счёт тесной интеграции с Excel, надстройка Parser может считывать любые данные из файлов Excel, создавать отдельные листы и файлы, динамически формировать столбцы для вывода, а также использовать всю мощь встроенных в Excel возможностей.
Поддерживается также сбор данных из текстовых файлов (формата Word, XML, TXT) из заданной пользователем папки, а также преобразование файлов Excel из одного формата таблицы в другой (обработка и разбиение данных на отдельные столбцы)

В программе «Парсер сайтов» можно настроить обработку нескольких сайтов. Перед запуском парсинга (кнопкой на панели инструментов Excel) можно выбрать ранее настроенный сайт из выпадающего списка.

На видео рассказывается о работе с программой, и показан процесс настройки парсера интернет-магазина:

Парсинг сайта в Excel файл

Парсинг сайту в Excel файл

Услуга парсинга сайта в таблице xls, xlsx, csv в соответствии с потребностями заказчика.
В стоимость услуги входит парсинг товаров с сайта-донора: наименований, цен, изображений, описаний, характеристик, категорий, артикулов других элементов, указанных клиентом. Стоимость указана только за парсинг сайта.

Описание

Описание услуги — Парсинг сайта в Excel файл

В результате услуги «Парсинг сайта в Excel файл» заказчик получает табличный файл в формате xls, xlsx, csv для дальнейшего быстрого наполнения интернет-магазина товарами! Большинство современных платформ поддерживают импорт, поэтому наполнение таких магазинов не вызывает никаких проблем.

Эта услуга для вас, если есть опыт самостоятельного импорта товаров из файлов, или есть время и желание изучить такой функционал. В противном случае лучше заказать услугу, в стоимость которой входит загрузка товаров в интернет-магазин.

Чтобы получить файл с товарами, вы должны выбрать сайт-донор, это может быть любой интернет-магазин наполненный товарами, которые вы хотели бы загрузить в дальнейшем на свой ресурс.

Если для размещения своего интернет-магазина выбрана одна из следующих платформ: Prom, Shopify, WordPress, Horoshop, Shop-Express то в таком случае все прекрасно, я знаю какой формат и структура файла подходит этим площадкам.

Если вы хотите заказать парсинг для наполнения интернет магазина, работающего на любой другой CMS, укажите пожалуйста, какая вам нужна структура файла и его формат! Сделаю все согласно вашим потребностям.

Как заказать парсинг сайта:

  • Подготовьте пример Excel файла, который должен быть результатом услуги.

Файл должен содержать заголовок и хотя бы одну строчку с данными.

Пример файла:

Пример файла для парсинга сайта

  • Предоставьте короткое ТЗ на основе товарной страницы донора
Опишите пожелания к ожидаемому результату!

Структура каталога:

Как должны отделяться вложенные категории от родительских? Их нужно парсить в отдельные столбцы или в один? Если в один, то какой разделительный знак нужно использовать для отделения.

Изображение товара:

Каким образом парсить изображения? Это должна быть ссылка на изображение, или нужно сохранить в графических файлах?

Если изображений у товаров больше одного, каким образом собирать ссылки, каждое в отдельный столбец или один? Как отделять ссылки в одном столбце, через пробел или специальный символ?

Как формировать имена файлов изображений, если их нужно сохранить на жестком диске?

Обсудите эти вопросы и другие возможные, найдите на них ответы и выложите в техническом задании, прежде чем заказать парсинг сайта.

Укажите, как данные с товарной карты должны соответствовать файлу-таблице:

Пример:

Пошаговая инструкция по оказанию услуги:

  1. Заказываете услугу или бесплатную консультацию на этой странице.
  2. Я даю обратную связь, отвечаю на вопросы, обсуждаем детали.
  3. Оплачиваете стоимость услуги.
  4. Выполняю парсинг из указанного донора.
  5. Передаю файл заказчику.

Входящее в услугу «Парсинг товаров без заливки на сайт»:

Бесплатная консультация.

Парсинг с сайта донора до 10000 товаров:

  • артикулов,
  • названия товаров
  • описаний товаров,
  • бренда,
  • структуры категорий,
  • изображений товаров,
  • цены товара.
  • статус наличия.
  • характеристик.

Формирование эксель таблицы для импорта в соответствии с требованиями платформы.

Предоставление файла клиенту в мессенджер или по электронной почте.

Срок выполнения

Выполнение услуги по переносу сайта 1-4 рабочих дня.
Остались вопросы? Звоните, пишите.

Важно

  • В услугу не входит создание структуры сайта, добавление категорий и какие-либо настройки интернет-магазина клиента. Эти услуги предоставляются отдельно.
  • Если количество товаров превышает 10000, стоимость увеличивается на 100 грн. за каждую дополнительную тысячу.
  • Если сайт донор затрудняет доступ роботов с помощью капчи, блокировок и т.п., стоимость оговаривается.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *