Найти тему
Stifworld - О том О сем

Парсинг сайтов в excel этап 1

Оглавление

Ребят всем привет хочу поделиться своим опытом в парсинге данных с сайтов. Я занимаюсь разработкой сайтов на cms Wordpress, diafan, 1c bitrix и часто стали поступать запросы на пополнение контентом, и как бы не чего страшного если к примеру в интернет магазин нужно добавить товаров 10, но проблема начинается уже с самого начала потому что зачастую народ просит большое кол-во товаров которое ручками забить трудно.

Попробовав на просторах интернета парсеров так 10 остановился на парсере который работает в обычной программе Excel так называемая "Надстройка"

Покажу я все вам в два этапа иначе получиться очень длинная статья

Этап 1 подготовка - нам нужно указать парсеру все этапы по пунктам (самый сложный и ответственный момент)

Этап 2 вывод информации - в этой статье нам нужно вывести нужные нам поля на страницу Excel это финальный этап

Надстройку по которой я делал статью можно скачать по ссылке: Надстройка Excel

Вид программы

так выглядит сам парсер во вкладке программы excel
так выглядит сам парсер во вкладке программы excel

Особенность программы

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

Начало работы с парсером

парсим товары для интернет магазина

нажимаем на кнопку "создать и настроить новый парсер"

Я создам парсер с именем к примеру Рехау -  Буду парсить товары известного немецкого бренда REHAU далее появиться табличка  с настройками парсера
Я создам парсер с именем к примеру Рехау - Буду парсить товары известного немецкого бренда REHAU далее появиться табличка с настройками парсера

Редактирование настроек парсера

Ребят не забываем поставить галочку "Выполнить подстановку данных в Excel" иначе вы не сможете вывести полученные данные на лист - Переходим к этапу 2
Ребят не забываем поставить галочку "Выполнить подстановку данных в Excel" иначе вы не сможете вывести полученные данные на лист - Переходим к этапу 2

Переходим во вкладку исходные данные. Тут должны выбрать режим работы парсера и начнем редактировать действия парсера на странице

Выберите режим выбираем "Фиксированное исходное значение (или список значений)". Далее жмем на кнопку редактировать список действий
Выберите режим выбираем "Фиксированное исходное значение (или список значений)". Далее жмем на кнопку редактировать список действий

Редактировать список действий

Тут происходит вся основная магия процесса парсинга. Тут наша задача указать парсеру по пунктам что ему нужно сделать куда перейти что взять и тд

1 - выбираем действия которые парсер должен выполнить 2- выводит полученные данные 3- выводит окно вывода информации с боку 4 - показывается весь список действий которые вы выбрали для этого листа
1 - выбираем действия которые парсер должен выполнить 2- выводит полученные данные 3- выводит окно вывода информации с боку 4 - показывается весь список действий которые вы выбрали для этого листа

Брать данные будем с сайта www.nasoshop.ru а точнее в каталога Фитинги Rehau

Жмем добавить действие и выбираем из списка Загрузить страницу по ссылке.

  1. Способ загрузки: выбираем из выпадающего списка WinHTTP
  2. URL (вместо исходного значения) вставляем нужную ссылку в нашем случае я вставлю http://www.nasoshop.ru/collection/fitingi-rehau

Далее жмем кнопку тестировать как показано на картинки выше

у вас появиться результат в окошке под стрелкой 1 что не удобно для работы нажимаем кнопку 2 и результат будет удобно выводиться сбоку
у вас появиться результат в окошке под стрелкой 1 что не удобно для работы нажимаем кнопку 2 и результат будет удобно выводиться сбоку

После загрузки страницы нам нужно проделать список действий. как видим перейдя по ссылки перед нами Каталог Фитинги Рехау. Наша задача сейчас действия добраться дл каждого из под каталога

 то есть: Гильзы надвижные Rehau Rautitan PX, Переходники Rehau Rautitan RX/MX с накидной гайкой,  Переходники Rehau Rautitan RX с НР наружной резьбой и тд
то есть: Гильзы надвижные Rehau Rautitan PX, Переходники Rehau Rautitan RX/MX с накидной гайкой, Переходники Rehau Rautitan RX с НР наружной резьбой и тд

Добавляем действия по одному поехали

  • Категория: Работа с HTML
  • Действие: Поиск тегов

и ищем наш тег
и ищем наш тег

Ссылки на каждый подкаталог

нам нужно указать парсеру что бы он нашел все ссылки подкаталогов на странице и перешел в каждую из низ как мы видим ссылки мы можем найти по тегу <a> и классу title
нам нужно указать парсеру что бы он нашел все ссылки подкаталогов на странице и перешел в каждую из низ как мы видим ссылки мы можем найти по тегу <a> и классу title

  1. Тип элемента (например, div или table) выбираем из списка тег <a>
  2. Название проверяемого атрибута выбираем из списка "class"
  3. Значение выбираемого атрибута выбираем в нашем случае title
  4. Тип результата / извлекаемый атрибут выбираем из списка "outerHTML"

Жмем тестировать и видим результат

Парсер нашел 23 ссылки на подкаталоги.  Как мы помник в каждый из них парсер должен зайти и спарсить товары
Парсер нашел 23 ссылки на подкаталоги. Как мы помник в каждый из них парсер должен зайти и спарсить товары

Переход в подкаталоги

Как мы увидели на фото выше парсер нашел 23 ссылки, это ссылки на все подкаталоги, теперь наша задача зайти в каждый подкаталог и найти там товары, для этого жмем на кнопку "Создать подуровень" Если выскочит окно сохранения сохраните!

Этим самым мы сказали парсеру чтобы он переходил в каждую из 23 ссылок по одной
Этим самым мы сказали парсеру чтобы он переходил в каждую из 23 ссылок по одной

Первый подкаталог который посетит наш парсер это "Гильзы надвижные Rehau Rautitan PX" перейдем по ссылке в браузере для удобства и видим что тут у нас 4 товара. Давайте скажем парсеру найти эти товары сколько бы их там не было и заходить в каждый из них. Поехали!

У нас открылась знакомая нам ранее окно с возможностью выбора действий, список действий и тд.

Жмем нашу любимую кнопку "Добавить действия" выбираем "Работа с HTML" и тут выбираем "Получить гиперссылку и ее текст"

  1. Сохранить ссылку в переменную из списка выбираем: "categoryURL"
  2. Сохранить текст ссылки в переменную, вписываем понятное вам имя: "Название категории"
Для чего это нужно. 1. Если нам нужно спарсить название категории 2.   Если нам нужно спарсить URL категории 3. Мы сможем вывести прогресс бар что бы видеть что сейчас делает парсер. Очень удобная штука далее мы просто возьмем название категории из переменной.
Для чего это нужно. 1. Если нам нужно спарсить название категории 2. Если нам нужно спарсить URL категории 3. Мы сможем вывести прогресс бар что бы видеть что сейчас делает парсер. Очень удобная штука далее мы просто возьмем название категории из переменной.

Вывод в прогресс бар "Категории"

Что бы понимать и видеть чем занят наш парсер, Создатель придумал нам эту возможность гибко выводить то что нам нужно.

Жмем нашу любимую кнопку "Добавить действия" идем в Категории: управление парсером. В действии: Прогресс бар: вывод информации.

  1. Номер строки индикатора: 1
  2. Тип обрабатываемого значения: стираем то что есть и нажав правую кнопку мыши выбираем "Код переменной categoryURL"
  3. Значение: нажав правую кнопку мыши выбираем "Код переменной Название категории"
параметры 2 и 3 после нажатия будут обернуты в знай % так и должно быть.
Так парсер поймет что выводит для пользователя
Так парсер поймет что выводит для пользователя

Загрузка страницы подкатегории

Теперь парсер должен загрузить найденные ссылки по одной. Первой ссылкой будет подкаталог "Гильзы надвижные Rehau Rautitan PX"

Жмем нашу любимую кнопку "Добавить действия" идем в Категории: Работа с HTML. В действии: Загрузить страницу по ссылке. Не заполняем не какие атрибуты просто жмем загрузить и видим что мы прогрузили страницу где нам предстоит найти товары.

Под стрелкой мы видим HTML код страницы
Под стрелкой мы видим HTML код страницы

Поиск товара

Проверим в браузере как найти ссылку на товары

и видим что товары лежат <a class="title"> все также как мы искали ссылки на подкаталоги :-) Поехали дальше
и видим что товары лежат <a class="title"> все также как мы искали ссылки на подкаталоги :-) Поехали дальше

Жмем нашу любимую кнопку "Добавить действия" выбираем поиск тегов

  1. Тип элемента (например, div или table) выбираем из списка тег <a>
  2. Название проверяемого атрибута выбираем из списка "class"
  3. Значение выбираемого атрибута выбираем в нашем случае title
  4. Тип результата / извлекаемый атрибут выбираем из списка "outerHTML"

И видим что перейдя по первой ссылке он нашел 4 товара. Это хорошо, значит мы все делаем правильно!

Четыре товара в теги <а> что тут мы видим 1. Ссылка 2. Текст
Четыре товара в теги <а> что тут мы видим 1. Ссылка 2. Текст

Переход к Товару

Как мы увидели на фото выше парсер нашел 4 ссылки, это ссылки на все товары в подкаталоге, теперь наша задача зайти в каждый товар, для этого жмем на кнопку "Создать подуровень" Если выскочит окно сохранения сохраните! Все по накатанной Ребята :-)

Этим самым мы сказали парсеру чтобы он зашел в каждый товар, В данной категории 4 товара.
Этим самым мы сказали парсеру чтобы он зашел в каждый товар, В данной категории 4 товара.

Первый товар который посетит наш парсер это "Монтажная гильза Rehau PX 16 (арт. 11600011001)"

У нас открылась знакомая нам ранее окно с возможностью выбора действий, список действий и тд.

Жмем нашу любимую кнопку "Добавить действия" выбираем "Работа с HTML" и тут выбираем "Получить гиперссылку и ее текст"

  1. Сохранить ссылку в переменную из списка выбираем: "itemURL"
  2. Сохранить текст ссылки в переменную, вписываем понятное вам имя: "Название Товара"
Для чего это нужно. 1. Нам нужно спарсить название товара 2.   Если нам нужно спарсить URL товара 3. Мы сможем вывести прогресс бар что бы видеть что сейчас делает парсер. Очень удобная штука далее мы просто возьмем название товара из переменной.
Для чего это нужно. 1. Нам нужно спарсить название товара 2. Если нам нужно спарсить URL товара 3. Мы сможем вывести прогресс бар что бы видеть что сейчас делает парсер. Очень удобная штука далее мы просто возьмем название товара из переменной.

Вывод в прогресс бар "Товары"

Жмем нашу любимую кнопку "Добавить действия" идем в Категории: управление парсером. В действии: Прогресс бар: вывод информации.

все также как делали для подкатегории!

  1. Номер строки индикатора: 2 (Тут выбираем цифру 2)

Тип обрабатываемого значения: стираем то что есть и нажав правую кнопку мыши выбираем "Код переменной itemURL" (Будьте внимательны)

  1. Значение: нажав правую кнопку мыши выбираем "Код переменной Название Товара" (Будьте внимательны)
параметры 2 и 3 после нажатия будут обернуты в знай % так и должно быть.
Так парсер поймет что выводит для пользователя
Так парсер поймет что выводит для пользователя

Загрузка страницы товара

Теперь парсер должен загрузить найденные ссылки по одной. Первой ссылкой будет товар "Монтажная гильза Rehau PX 16 (арт. 11600011001)"

Жмем нашу любимую кнопку "Добавить действия" идем в Категории: Работа с HTML. В действии: Загрузить страницу по ссылке. Не заполняем не какие атрибуты просто жмем загрузить и видим что мы прогрузили страницу где нам предстоит найти товары.

Мы видим код страницы товара. Теперь нам нужно сохранить все в буфер
Мы видим код страницы товара. Теперь нам нужно сохранить все в буфер

Сохранение в буфер

Результат обработки справа сверху жмем на стрелочку

появиться список с выбором значений
появиться список с выбором значений

нам нужен пункт под названием: Сохранить в буфере

Теперь вся страница товара сохранена в буфер далее рассмотрим зачем нам буфер.
Теперь вся страница товара сохранена в буфер далее рассмотрим зачем нам буфер.

Жмакаем на кнопку: Сохранить список действий

-24

И мы снова видим табличку с главными настройками парсера

Должно получиться как у меня. и у вас должно получиться 3 уровня
Должно получиться как у меня. и у вас должно получиться 3 уровня

Поздравляю все этапы загрузки страниц мы прошли! осталось дело за малым

в следующей статье мы рассмотрим:

Как вывести название товара, описание, фото, характеристики и тд.