Ребят всем привет хочу поделиться своим опытом в парсинге данных с сайтов. Я занимаюсь разработкой сайтов на cms Wordpress, diafan, 1c bitrix и часто стали поступать запросы на пополнение контентом, и как бы не чего страшного если к примеру в интернет магазин нужно добавить товаров 10, но проблема начинается уже с самого начала потому что зачастую народ просит большое кол-во товаров которое ручками забить трудно.
Попробовав на просторах интернета парсеров так 10 остановился на парсере который работает в обычной программе Excel так называемая "Надстройка"
Покажу я все вам в два этапа иначе получиться очень длинная статья
Этап 1 подготовка - нам нужно указать парсеру все этапы по пунктам (самый сложный и ответственный момент)
Этап 2 вывод информации - в этой статье нам нужно вывести нужные нам поля на страницу Excel это финальный этап
Надстройку по которой я делал статью можно скачать по ссылке: Надстройка Excel
Вид программы
Особенность программы
очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными, разбиение значения на массив и обработка каждого элемента в отдельности, вывод характеристик в отдельные столбцы, автоматический поиск цены товара на странице, поддержка форматов JSON и XML).
Начало работы с парсером
парсим товары для интернет магазина
нажимаем на кнопку "создать и настроить новый парсер"
Редактирование настроек парсера
Переходим во вкладку исходные данные. Тут должны выбрать режим работы парсера и начнем редактировать действия парсера на странице
Редактировать список действий
Тут происходит вся основная магия процесса парсинга. Тут наша задача указать парсеру по пунктам что ему нужно сделать куда перейти что взять и тд
Брать данные будем с сайта www.nasoshop.ru а точнее в каталога Фитинги Rehau
Жмем добавить действие и выбираем из списка Загрузить страницу по ссылке.
- Способ загрузки: выбираем из выпадающего списка WinHTTP
- URL (вместо исходного значения) вставляем нужную ссылку в нашем случае я вставлю http://www.nasoshop.ru/collection/fitingi-rehau
Далее жмем кнопку тестировать как показано на картинки выше
После загрузки страницы нам нужно проделать список действий. как видим перейдя по ссылки перед нами Каталог Фитинги Рехау. Наша задача сейчас действия добраться дл каждого из под каталога
Добавляем действия по одному поехали
- Категория: Работа с HTML
- Действие: Поиск тегов
Ссылки на каждый подкаталог
- Тип элемента (например, div или table) выбираем из списка тег <a>
- Название проверяемого атрибута выбираем из списка "class"
- Значение выбираемого атрибута выбираем в нашем случае title
- Тип результата / извлекаемый атрибут выбираем из списка "outerHTML"
Жмем тестировать и видим результат
Переход в подкаталоги
Как мы увидели на фото выше парсер нашел 23 ссылки, это ссылки на все подкаталоги, теперь наша задача зайти в каждый подкаталог и найти там товары, для этого жмем на кнопку "Создать подуровень" Если выскочит окно сохранения сохраните!
Первый подкаталог который посетит наш парсер это "Гильзы надвижные Rehau Rautitan PX" перейдем по ссылке в браузере для удобства и видим что тут у нас 4 товара. Давайте скажем парсеру найти эти товары сколько бы их там не было и заходить в каждый из них. Поехали!
У нас открылась знакомая нам ранее окно с возможностью выбора действий, список действий и тд.
Жмем нашу любимую кнопку "Добавить действия" выбираем "Работа с HTML" и тут выбираем "Получить гиперссылку и ее текст"
- Сохранить ссылку в переменную из списка выбираем: "categoryURL"
- Сохранить текст ссылки в переменную, вписываем понятное вам имя: "Название категории"
Вывод в прогресс бар "Категории"
Что бы понимать и видеть чем занят наш парсер, Создатель придумал нам эту возможность гибко выводить то что нам нужно.
Жмем нашу любимую кнопку "Добавить действия" идем в Категории: управление парсером. В действии: Прогресс бар: вывод информации.
- Номер строки индикатора: 1
- Тип обрабатываемого значения: стираем то что есть и нажав правую кнопку мыши выбираем "Код переменной categoryURL"
- Значение: нажав правую кнопку мыши выбираем "Код переменной Название категории"
параметры 2 и 3 после нажатия будут обернуты в знай % так и должно быть.
Загрузка страницы подкатегории
Теперь парсер должен загрузить найденные ссылки по одной. Первой ссылкой будет подкаталог "Гильзы надвижные Rehau Rautitan PX"
Жмем нашу любимую кнопку "Добавить действия" идем в Категории: Работа с HTML. В действии: Загрузить страницу по ссылке. Не заполняем не какие атрибуты просто жмем загрузить и видим что мы прогрузили страницу где нам предстоит найти товары.
Поиск товара
Проверим в браузере как найти ссылку на товары
Жмем нашу любимую кнопку "Добавить действия" выбираем поиск тегов
- Тип элемента (например, div или table) выбираем из списка тег <a>
- Название проверяемого атрибута выбираем из списка "class"
- Значение выбираемого атрибута выбираем в нашем случае title
- Тип результата / извлекаемый атрибут выбираем из списка "outerHTML"
И видим что перейдя по первой ссылке он нашел 4 товара. Это хорошо, значит мы все делаем правильно!
Переход к Товару
Как мы увидели на фото выше парсер нашел 4 ссылки, это ссылки на все товары в подкаталоге, теперь наша задача зайти в каждый товар, для этого жмем на кнопку "Создать подуровень" Если выскочит окно сохранения сохраните! Все по накатанной Ребята :-)
Первый товар который посетит наш парсер это "Монтажная гильза Rehau PX 16 (арт. 11600011001)"
У нас открылась знакомая нам ранее окно с возможностью выбора действий, список действий и тд.
Жмем нашу любимую кнопку "Добавить действия" выбираем "Работа с HTML" и тут выбираем "Получить гиперссылку и ее текст"
- Сохранить ссылку в переменную из списка выбираем: "itemURL"
- Сохранить текст ссылки в переменную, вписываем понятное вам имя: "Название Товара"
Вывод в прогресс бар "Товары"
Жмем нашу любимую кнопку "Добавить действия" идем в Категории: управление парсером. В действии: Прогресс бар: вывод информации.
все также как делали для подкатегории!
- Номер строки индикатора: 2 (Тут выбираем цифру 2)
Тип обрабатываемого значения: стираем то что есть и нажав правую кнопку мыши выбираем "Код переменной itemURL" (Будьте внимательны)
- Значение: нажав правую кнопку мыши выбираем "Код переменной Название Товара" (Будьте внимательны)
параметры 2 и 3 после нажатия будут обернуты в знай % так и должно быть.
Загрузка страницы товара
Теперь парсер должен загрузить найденные ссылки по одной. Первой ссылкой будет товар "Монтажная гильза Rehau PX 16 (арт. 11600011001)"
Жмем нашу любимую кнопку "Добавить действия" идем в Категории: Работа с HTML. В действии: Загрузить страницу по ссылке. Не заполняем не какие атрибуты просто жмем загрузить и видим что мы прогрузили страницу где нам предстоит найти товары.
Сохранение в буфер
Результат обработки справа сверху жмем на стрелочку
нам нужен пункт под названием: Сохранить в буфере
Жмакаем на кнопку: Сохранить список действий
И мы снова видим табличку с главными настройками парсера
Поздравляю все этапы загрузки страниц мы прошли! осталось дело за малым
в следующей статье мы рассмотрим:
Как вывести название товара, описание, фото, характеристики и тд.