Парсер сайтов и файлов (парсинг данных с сайта в 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) можно выбрать ранее настроенный сайт из выпадающего списка.

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

 

Видеоинструкция

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

 

Дополнительные видеоинструкции, а также подробное описание функционала, можно найти в разделе Справка по программе

 

В программе можно настроить несколько парсеров (обработчиков сайтов).
Любой из парсеров настраивается и работает независимо от других.

Примеры настроенных парсеров (можно скачать, запустить, посмотреть настройки)

Видеоинструкция (2 минуты), как запустить готовый (уже настроенный) парсер

 

Настройка программы, - дело не самое простое (для этого, надо хоть немного разбираться в HTML)

Если вам нужен готовый парсер, но вы не хотите разбираться с настройкой,
— закажите настройку парсера разработчику программы. Стоимость настройки под конкретный сайт - от 2000 рублей.
(настройка под заказ выполняется только при условии приобретения лицензии на надстройку «Парсер» (3300 руб)

Инструкция (с видео) по заказу настройки парсера
По всем вопросам, готов проконсультировать вас в Скайпе.

 

Программа не привязана к конкретному файлу Excel.
Вы в настройках задаёте столбец с исходными данными (ссылками или артикулами),
настраиваете формирование ссылок и подстановку данных с сайта в нужные столбцы,
нажимаете кнопку, - и ваша таблица заполняется данными с сайта.

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

 

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

Можно попробовать разобраться с работой программы на примерах настроенных парсеров

Как скачать и протестировать программу

Комментарии

Скажите, как быть в такой ситуации.
Нужно найти тек DIV, где CLASS с очень длинным названием. Я попыталась вписать только часть текста, но результата так же нет.

Вот как выглядит код:

< div class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" style="display: none; overflow: hidden;" id="ui-accordion-accordion_menu-panel-0" aria-labelledby="ui-accordion-accordion_menu-header-0" role="tabpanel" aria-expanded="false" aria-hidden="true">
< ul >
< li class="forty" >

Здравствуйте, Сергей
Да, может, но я конкретно под этот сайт (яндекс маркет) не настраивал, так как знаю все нюансы,
там работы очень много по настройке (авторизация, обработка капчи, прокси-серверы, разные варианты выдачи результата, прочие нюансы)
Настроить можем под заказ, но будет дорого
Заказы на парсер принимаются в таком виде
http://excelvba.ru/programmes/Parser/order

Здравствуйте! Подскажите Ваш парсер может собирать данные с яндекс маркета ?

Владимир, специально для вашей задачи у меня есть другая программа (для обработки прайс-листов)
http://excelvba.ru/programmes/Unification
А фотки можно найти в Google другой надстройкой (для поиска и вставки картинок)
http://excelvba.ru/programmes/PastePictures

А парсер (в статье о котором вы разместили свой комментарий) - это больше для парсинга сайтов.

Здравствуйте!
Интересует парсер для обработки прайс-листов от разных поставщиков. Прайсы имеют разную структуру. Товары от поставщиков - шины. требуется обработка по категориям и поиск фото для товара.

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

Здравствуйте, Василий
Мало добавить макрос, - его надо еще и запустить
Там 2 параметра у действия, - в первом указываете название набора макросов (из вкладки Дополнительно - Макросы), куда вы этот код написали,
а во втором параметре - название запускаемого макроса (Очистить_файл)
И тогда всё заработает

Подскажите пожалуйста. Мне нужно что б перед каждым запуском парсера очищалась определенная область. Пытался "добавить макрос VBA в текущий файл" в parser_start но он не срабатывает. Пример макроса.

Sub Очистить_файл()

Range("A10:F10").ClearContents

End Sub

"Очистить лист от данных" не подходит. Так как убирает все после указанной ячейки.

Точно...
Спасибо.

Здравствуйте, Евгений
Такой опции нет, но вы можете сначала считать текст из файла, добавить текст до или после считанного, и сохранить под исходным именем.
По сути, получится то, что вам нужно, - только в 3 действия вместо 1.

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

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

У меня нет возможности (а также времени и желания) публиковать примеры настройки под все возможные варианты применения парсера.
Программа справится с вашей задачей, но показывать на примерах, как это можно сделать, я не готов.
Может настроить под заказ, - тогда все будет работать как вам надо.

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

Да, это возможно
Либо отправкой POST запросов, либо заполнением полей в браузере Internet Explorer
По POST запросам - видео есть, по заполнению полей в IE - пока нет.

Здравствуйте! Скажите, пожалуйста, возможно ли реализовать через парсер не получение данных, а наоборот загрузку данных на сайт? Например, чтобы заполнять интернет-портал? И если возможно- то есть ли видео на эту тему?

Федор, всё можно настроить. Не видя, что у вас там настроено, конкретный совет дать не могу
Можем настроить под заказ.

Я вероятно не корректно выразил мысль. Суть в том что если на странице2 есть среди прочих данных и одна из ссылок со страницы1, то страницу2 не обрабатывать. Как бы значение при котором парсер пропускает страницу и переходит к следующей. Мне иногда тяжело выразить мысль) Большое спасибо за ваше внимание.

Федор, тут есть 2 варианта:
1) не выводить одинаковые ссылки на лист
Есть специальное действие «Поиск значения в столбце», при помощи которого можно отменить вывод данных на лист
2) действие «Удалить дубликаты по столбцу»
Его можно добавить в набор действий Parser_Finish для удаления дубликатов по окончании работы парсера,
но можно удалять дубликаты и чаще (сразу после вывода блока ссылок)

Добрый день!) А можно увидеть пример настройки в котором получаемые данные сравниваются с данными ранее полученными этим же парсером? Например собрали ссылки со страницы1, потом со страницы2. Ссылки со страницы2 сравниваем со ссылками страницы1 и если совпадают то удаляем, а по остальным продолжаем парсинг.

Андрей, нужно добавить действие «Отправить файл Excel на почту» в набор действий с названием Parser_Finish

Подскажите как настроить отправку итогового файла парсера на mail?

Александр, я бы сделал вот так:

Исходное значение
Ссылка: (откроется в новой вкладке)

Действие Параметр Значение Результат
Сохранить текущее значение в переменную Название переменной URL Ссылка: (откроется в новой вкладке)
<без изменений>
Область видимости parser
 
Загрузить ИСХОДНЫЙ КОД веб-страницы URL   Исходный код веб-страницы (длиной 707080 символов)

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8"/>
    <link rel="shortcut icon" sizes="16x16 32x32" href="/favicon.ico">
    <title>Купить Колбасы, ветчина в Москве, цена Колбасы, ветчина с доставкой на дом в интернет магазине Перекресток</title>
ter__item ">
...
</body>
</html>
Кодировка веб-страницы direct
Загружать все страницы результатов  
Выполнять после каждой загрузки  
 
HTML: Поиск тегов Тип элемента span Число (длиной 3 символа)
Название проверяемого атрибута class
Значение проверяемого атрибута js-list-total__total-count
Тип результата / извлекаемый атрибут ConvertToText 1
 
Создать массив чисел (для цикла) Начальное значение 1 Массив из 7 значений:

1
2
3
4
5
6
7
Конечное значение  
Шаг 1
Делитель для конечного значения 24
 
Добавить текст ДО или ПОСЛЕ Префикс %URL%/page/ Массив из 7 значений:

https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetchina/page/1
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetch...
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetch...
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetch...
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetch...
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetch...
https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetchina/page/7
Суффикс  
 

Скажите, как правильно организовать получение страниц с интернет-магазина Перекрестка (вот здесь, например - https://www.perekrestok.ru/catalog/myaso-ptitsa-delikatesy/kolbasy-vetchina).
Там страницы аяксом переключаются, "Получить все ссылки пейджера" не работает.
Посмотрел комментарий http://excelvba.ru/programmes/Parser#comment-7443 - принцип не уловил ((
Подскажите, куда копать, пожалуйста.

Спасибо!!!

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

Здравствуйте. Подскажите можно ли сделать при загрузке файлов (КАРТИНОК) давать им имена из переменной. Чтоб скачиваемая картинка имела артикул товара. Как это сделать?

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

Здравствуйте. В настройках прокси-серверов сказано, что поддерживается только 1 прокси в данной версии программы (у меня последняя 2.9.16). Скажите, в какой версии есть возможность работать через список прокси и как получить эту версию? Спасибо

сама разобралась, если данные списком и нет у них отдельных заголовков, чтобы применить "НазваниеСтолбца|ЗначениеСтолбца" необходимо так настроить - https://yadi.sk/i/QPjfGgd63HSCgT
Пишу, может кому пригодится эта инфа

Елена, тут нет какого-то простого и универсального ответа.
Я не телепат, - не знаю, что и как у вас там настроено.
Помочь с настройкой могу, но помощь с настройкой - только на платной основе
(так как сайтов много, желающих тоже много, - не могу позволить себе помогать всем с настройкой бесплатно)
Я бы с удовольствием подсказал, если вопрос был бы мне понятен
А расписывать кучу вариантов, в надежде что я угадаю, и воссоздавать настройки вашего парсера для тестирования, мне лень.
Если готовы оплатить помощь с настройкой, - пишите в скайп.

но список иногда достигает 400 значений на 1 товар

Парсер может выводить тысячи столбцов (сколько их там есть в Excel)
Можно создавать столбцы динамически, из массива значений вида НазваниеСтолбца|ЗначениеСтолбца

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
      _   _____           ____     __    __        __
__| | |_ _| _ __ |___ \ / /_ \ \ / /
/ _` | | | | '_ \ __) | | '_ \ \ \ /\ / /
| (_| | | | | | | | / __/ | (_) | \ V V /
\__,_| |_| |_| |_| |_____| \___/ \_/\_/
Введите код, изображенный в стиле ASCII-арт.