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

Надстройка Parser для MS Excel: общие сведения

Предназначение программы: быстрый сбор любых данных с различных сайтов или файлов, с выводом результата в Excel.

Основные возможности:

  • парсинг интернет-магазинов и любых других сайтов (соцсетей, каталогов, объявлений и т.д.)
  • извлечение данных из файлов формата Word / Excel / txt / PDF
  • скачивание файлов (изображений, документов, и т.п.)
  • обновление цен по ссылкам (мониторинг цен конкурентов / РРЦ)

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

Простота использования и настройки

  • Запуск парсера нажатием одной кнопки на ленте Excel
  • Для настройки парсеров не нужно знание программирования!
    Достаточно минимально понимать HTML (что такое теги), и изучить 2 основные команды парсера (загрузка страницы, и поиск тегов). Этого достаточно для 90% задач.
  • Если сами не разберётесь с настройкой — всегда можно заказать нам настройку парсера под вашу задачу.
  • Всё что нужно для работы парсера, это Windows 10 (или новее) и Microsoft Excel (версии 2010 или новее)
    Иногда ещё нужен браузер Google Chrome (для работы с проблемными сайтами)
  • Можно настроить программу под несколько разных сайтов (задач), и легко переключаться между настройками через выпадающий список на панели инструментов программы.

Гибкая постобработка данных

  • Множество текстовых функций для обработки полученной информации
  • Разнообразные фильтры и функции перекодировки
  • Работа с переменными и массивами данных
  • Разбиение значений на отдельные элементы с индивидуальной обработкой
  • Автоматический вывод характеристик товаров в отдельные столбцы
  • Интеллектуальный поиск цен на страницах
  • Поддержка форматов JSON и XML

Продвинутые сетевые возможности

  • Несколько способов загрузки страниц — WinHTTP / WinAPI / WinINET / IE / Google Chrome
  • Авторизация — поддержка входа в аккаунты на различных сайтах
  • Региональные настройки — выбор географического региона для парсинга
  • HTTP-запросы — поддержка GET и POST методов, конструктор запросов
  • Cookies и Headers — полная работа с HTTP-заголовками и куки
  • Многопоточность — до 200 одновременных потоков для ускорения работы
  • Обход защиты — распознавание капчи через сервис RuCaptcha.com, паузы между запросами
  • Браузерная интеграция — работа с защищёнными от роботов сайтами через Google Chrome
  • Кеширование — сохранение данных для повторного использования

Неограниченные возможности поиска и навигации по сайту

  • Рекурсивный поиск страниц на сайтах
  • Поиск данных по HTML-тегам и их атрибутам
  • Автоматическое обнаружение ссылок пагинации (пейджера)
  • Специализированные функции для работы с HTML-таблицами
  • Преобразование HTML в текст и пары "название-значение"
  • Очистка HTML от лишних данных

Интеграция с Excel

  • Чтение данных из файлов Excel для использования в парсинге
  • Создание отдельных листов и файлов
  • Динамическое формирование столбцов для вывода результатов
  • Использование всех встроенных возможностей Excel (условное форматирование, формат ячеек)
  • Удобная панель инструментов для запуска парсинга

Работа с файлами

  • Сбор данных из файлов различных форматов (Word, XML, TXT, Excel, PDF)
  • Обработка файлов из заданных пользователем папок
  • Сохранение изображений и документов под заданными именами в настраиваемые папки

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

Более подробно всё это описано в разделе Справка по программе

Видеоинструкция
YouTube
VK Video
RuTube

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

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

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

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

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

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

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

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

Комментарии

Еще такой вопрос. Можно задать такой цикл. а то страница не с перового раза загружается. Идея такая: После загрузки URL проводить проверку. Если символов меньше 10000 то начать заново алгоритм. если больше то продолжить. Как можно подобную проверку задать?

Большое спасибо за быстрый ответ.

В этом случае (когда пейджер нестандартный, и программой не берётся), можно обойти проблему в несколько действий:

Действие Параметр Значение
Сохранить текущее значение в переменную Название переменной URL
Область видимости parser
Загрузить ИСХОДНЫЙ КОД веб-страницы URL
Кодировка веб-страницы
Загружать все страницы результатов
Кеширование
HTML: Поиск тегов Тип элемента ul
Название проверяемого атрибута class
Значение проверяемого атрибута pagination
Тип результата / извлекаемый атрибут innerHTML 1
HTML: Поиск тегов Тип элемента a
Название проверяемого атрибута
Значение проверяемого атрибута
Тип результата / извлекаемый атрибут ConvertToText
Минимальное / максимальное / среднее Функция для массива чисел Max
Проверка на выполнение условия Режим проверки меньше
Значение для сравнения 1
Действие при выполнении условия Задать новое значение
Параметр действия 1
Проверять другое значение нет
Другое проверяемое значение
СОЗДАТЬ массив чисел (для цикла) Начальное значение 1
Конечное значение
Шаг 1
Делитель для конечного значения
Добавить текст ДО или ПОСЛЕ Префикс %URL%
Суффикс /
Исходное значение Результат (массив из 46 значений)
http://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/
httр://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/1/
httр://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/2/
...
httр://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/46/

 

Добрый вечер. Игорь столкнулся с такой страницей http://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/ Хочу получить все страницы пейджера. Страницы меняются http://avtotochki.ru/catalog/avtomoyki/pt5c1657912419996/2/ по настройкам не как не могу задать чтобы получить все страницы. Поможете советом?

Здравствуйте, Николай
В примечание из переменной - да, конечно можно. Используйте для вставки %НазваниеПеременной%
Можно также использовать любые другие подстановочные коды

to Александр

Лично у меня Excel на удаленной банке всегда запущен, полет нормальный. Какой смысл постоянно запускать и закрывать его, один раз сам запустил, а дальше он живет собственной "жизнью"? Дайте ему больше свободы.=)

to Игорь

Здравствуйте Игорь, подскажите, можно ли в примечании (Вывод на лист ---> Формат ---> Примечание) выводить значение переменной?

Появилась необходимость запускать парсер на удалённом ПК, изучил мануал, добавил в планировщик, при тесте, всё хорошо, а вот при использовании, получаю следующую проблему:
Планировщик заданий срабатывает, запускается Excel, но само окошка с отсчетом времени запуска парсера, оказывается позади открытой книги Excel и парсер в итоге не запускается, пока не кликнуть в любое место либо книги, либо рабочего стола, в результате чего, окно с отсчетом времени переносится на передний план, отсчет начинается и парсер запускается
Суть происходящего записал на видео https://youtu.be/sKV0qtj0-0E Надеюсь на помощь, что предпринять, что-бы всё заработало. Спасибо.

Здравствуйте
Заказы на парсер принимаются в таком виде
http://excelvba.ru/programmes/Parser/order
Будет заказ, потому уже обсудим

Добрый день! Хотел обсудить с Вами создание одного парсера! Если возможно через скайп, мой скайп orakov88

Прокси пока еще не применимы к многопоточности.
Когда-нибудь сделаю, но пока таких задач передо мной не стоит.

Здравствуйте. А как прокси распределяются по потокам в многопоточном режиме?

Александр, парсер сам по-очереди подставит все ссылки из ячеек, при запуске
Первое действие будет "Загрузить исходный код страницы"

Присоединяюсь к вопросу от 17.10.2018 https://excelvba.ru/programmes/Parser#comment-9564
Справка, не дала понимания. В настройке "исходных данных" всё понятно, указал имя столбца, парсер правильно указал диапазон, где находятся именно URLы, с которых необходимо забирать информацию. Ок. Но вот первое действие какое? Как получить первую ссылку из ячейки? Как отправить эту ссылку парсеру? Кажется уже все возможные варианты перепробовал, а все равно, запрос пустой и никак данные о ссылке не передаются парсеру. Помогите пожалуйста.

Здравствуйте, Канат
Ответ на ваш вопрос есть в справке по программе:
https://excelvba.ru/programmes/Parser/manuals/InitialDataTab#Column

Здравствуйте Игорь,
пробую ваш парсер, очень хорошая штука, спасибо. Пока тестирую, один вопрос - как загружать URL-ы web страниц находящихся в одном столбце (список) в файле Excel. Ну а далее уже по настроенным действиям парсера, там понятно. Т.е как циклом подставлять значение URL страницы в действие "Загрузить ИСХОДНЫЙ КОД веб-страницы"

С уважением Канат

Элементарно добавьте в любой проект в parser_finish планировщик при работающем прогресс-баре, что бы он срабатывал каждые 10 сек и заметите как у вас все окно покроется сплошными прогресс-барами и со временем парсер начнет нагружать систему.

Вышлите мне на почту файл настроек парсера, посмотрю, что там с утечкой памяти

Потому-что обнаружил утечку памяти при частых запусках планировщика, ну и старый прогресс-бар не закрывается при новом запуске парсера и все окно в прогресс-барах получается

А чем это действие не устраивает?
https://excelvba.ru/programmes/Parser/actions/AddScheduledTask

Сделал агрегатор нескольких фриланс бирж, с возможностью отправки уведомлений в вк при нахождении нужной работы отобранной через ключевые и минус слова, надо просто зациклить этот парсер. У меня один вопрос как сделать так что бы парсер работал в бесконечном цикле? Я так понимаю добавить действие в parser_finish которое бы возвращало начало работы к первому значению исходных данных на первый подуровень, но какое действие не могу смекнут.

Напишите мне в скайп, обсудим, что и для чего вы делаете, — тогда может смогу что-нибудь посоветовать

путем перехода на первое действие в списке я так понимаю действует только если в парсере 1 подуровень, а если у меня их 3 и по окончании парсинга надо например запустить парсинг с первого подуровняуровня. какое действие мне надо добавить в parser_finish что бы зациклить парсинг?

Да, можно
Например, путем перехода на первое действие в списке
Инструкция: https://excelvba.ru/programmes/Parser/manuals/StopCodes

Здравствуйте. Можно ли как то одно фиксированное исходное значение поместить в бесконечный цикл без использования планировщика?

Мария, будет заказ — будет и оценка стоимости.
Заказы на парсер принимаются в таком виде
http://excelvba.ru/programmes/Parser/order
По срокам, обычно, от 1 до 4 дней после оплаты

Добрый день.
Сколько будет стоить настроить парсер? Какие условия и сроки?

Без понятия, что у вас там не так (я не телепат). Может, где какой буквой ошиблись.
Как видите, у меня всё работает
Могу настроить под заказ

Игорь, спасибо за ответ! Сделал все по инструкции, 5 идентичных действий, на входящее значение подаю ссылку на товар - но ответ все равно приходит пустой? Что могло пойти не так?) Кеширование страниц выключено. Я даже менял айпи на роутере.

Лев, тут надо обязательно передавать заголовок запроса x-requested-with=XMLHttpRequest
иначе ответ придёт пустой.

Запрос (GET) выполняется на URL вида https://ru.iherb.com/catalog/Get360ImageUrls?pid=69226
где 69226 - id товара из ссылки на карточку товара

 

Исходное значение
Действие Параметр Значение Результат
Часть строки по разделителю (split) Разделитель / Число (длиной 5 символов)
Индекс нужной части last
Список имён переменных через |
Добавить текст ДО или ПОСЛЕ Префикс https://ru.iherb.com/catalog/Get360ImageUrls?pid= Ссылка:

Суффикс
Открыть HTTP соединение URL <без изменений>
Метод (тип) запроса GET
Добавить заголовок запроса Заголовок x-requested-with <без изменений>
Значение XMLHttpRequest
Использовать для ВСЕХ запросов нет
Отправить HTTP запрос и получить ответ Сохранять Cookies нет Текст (длиной 497 символов)

Кодировка веб-страницы

Добрый день! Подскажите, пожалуйста, как например на данной странице https://www.iherb.com/pr/Olympian-Labs-Inc-Melatonin-Alcohol-Free-Grape-... найти все ссылки класса "zoom-image"? Они появляются на странице по клику на картинку 360, но если настраивать клик в браузере - то это будет очень долгий процесс. Возможно, есть способ пост/гет запросами сделать? Пробовал по Вашей инструкции из видео сделать гет-запрос (в данном сайте именно гет) - но ничего не возращается, мол "сервер еще не обработал...".
Буду очень признателен за подсказку! И приведу клиентов! ;)