Парсер сайтов и файлов (парсинг данных с сайта в 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)

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

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

 

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

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

 

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

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

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

Комментарии

Олег, в этом случае надо полностью перенастраивать парсер (совсем другой принцип настройки, - формируя массив этот в исходных данных, по последнем подуровне)
На уровне одной галочки, в нынешнем варианте программы, проблема не решаема.


Роман, по вашим вопросам:

1) по переменным на форме парсера, - там далеко не всё отлажено в плане интерфейса. Потом как-нибудь доделаю.
Эти переменные крайне редко используются, и, в основном, мной. (не особо они нужны)
Я просто закрываю настройки парсера после изменения переменных и сохранения парсера, - и тогда переменные нормально отображаются.

2) Проверка на выполнение условия. Параметры 5 и 6 введены недавно, редко они нужны. Назвал параметры как мог, думал что будет понятно
Позже опишу этот момент в справке

3) возможность "Вернуться к действию" (аналог GoTo в программировании) - крайне не рекомендуется к использованию. Лично я ей вообще не пользуюсь. Сделал по просьбе моих коллег, которые изредка её применяют
Злоупотребление этой командой, в сочетании с кучей действий в одном списке, приводит к путанице. Используйте наборы действий, которые можно вызвать из любого списка действий (аналог вызова процедур / подпрограмм в программировании)

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

5) Отключенные строки при копировании/перемещении в буфер обмена становятся невидимыми
Да, есть такое. Недоработка. Исправлю в будущем

6) Насчёт кнопок для Parser_Start — не вижу необходимости
Очень редко пользуюсь

7) По примечанию - такую возможность делать не буду (кроме вас, вряд ли кто-то когда-то об этом задумывался)

8) Размер любого файла (хоть PDF, хоть любого другого) можно определить, применив 2 действия:

Исходное значение
Текст (длиной 34 символа)
Действие Параметр Значение Результат
Загрузить содержимое текстового файла Путь к файлу Текст (длиной 45983 символа)

Кодировка текстового файла windows-1251
Количество символов Символ Число
Сохранить результат в переменную
Вывести результат да

9) такой возможности пока нет
В планах сделать подстановочный код типа {ColumnIndex} для получения номера текущего столбца

Как развернуть вывод массива, что бы он выводился не во много столбцов а во много строк (1 элемент -1 строка).
В принципе (наверное) можно ввести "галочку" - поменять местами столбцы и строки.
Можно конечно потом транспонированием поменять.... но это доп обработка.

Добрый день. Хотелось бы несколько пожеланий высказать и задать пару вопросов.

-(Основная информация – переменные – изменить/удалить переменные). Не работают кнопки «Создать» и «Клонировать». А если поставить галку «Скрытая» и сохранить изменения, то, при снятии галки в дальнейшем, переменные не становятся видимыми, помогает только удаление переменной.

-(Действия – Проверка и сравнение – Проверка на выполнение условия). «5: Проверять другое значение» и «6: Другое проверяемое значение». Названия вводят в заблуждение. Много дней прибывал в полной уверенности, что здесь задается дополнительное значение, на которое также проверяются имеющиеся в исходном значении данные, после проверки значения в пункте 2, т.е. если проходит по пункту 2, потом пункту 6, то производится действие. Даже не сомневался, что именно так и работает, пока случайно не наткнулся в демо парсере на пример использования этой функции с задействованными 5 и 6 пунктами. Крайне удобная функция, но, полагаю, что многие ей не пользуются по тем же причинам, что не пользовался и я.

- «3: Действие при выполнении условия (Вернуться к действию). Катастрофически не хватает возможности, чтобы в момент введения номера строки, на которую следует вернуться/перескочить, шла привязка к действию в этой строке, а не к самой строке – если не по умолчанию так, то хотя бы опционально (может быть галку «привязка к действию»). Я понимаю, что когда знаешь вдоль и поперек парсер, то нет острой необходимости что-то переделывать на ходу, вставлять строки, возвращаться, менять алгоритм, но когда ты новичок, а один уровень парсера состоит из нескольких десяток строк с ветвящимися условиями и переходами по всему уровню взад и вперед, то любая вставка новой строки оборачивается просто трагедией с перестановкой всех номеров в «Вернуться к действию».

- Также очень сильно не хватает комментариев или хоть какой-то возможности визуально разграничить строки на отдельные блоки и подписать их. Или просто отделить пустой строкой с комментарием, или дополнительно изменять фон строк. Сейчас я пользуюсь костылями - вставляю строку в начале блока строк, отключаю ее и пишу в ней комментарий, что хоть и помогает улучшить восприятия больших парсеров, но недостаточно. Эти две проблемы (вместе с «Вернуться к действию»), которые наиболее старательно вставляют палки в колеса при создании больших, многозадачных, разветвленных парсеров.

- Отключенные строки при копировании/перемещении в буфер обмена становятся невидимыми.

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

-(Вывод на лист – Список столбцов для вывода – Формат – Примечание). Не хватает возможности убрать красный треугольник примечания у ячейки, если само примечание поступает из переменной пустое.

И пару вопрос:
- Может ли парсер определять размер файлов, в частности ПДФ? Сейчас для сравнения актуальности скачанного с сайта файла с хранящимся на компьютере, приходится каждый открывать через IE, копировать текстовое содержимое и только потом сравнивать.
- Как обратиться к гиперссылке, не зная заранее номер столбца? К сожалению, не работают переменные такого вида: {=B2@} или {B2@} и соответственно {={ColumnLetter}{row}@} или {{ColumnLetter}{row}@}, только по номеру столбца типа {1@}. При этом переменные такого вида, но без гиперссылки, работают исправно.

Спасибо.

Кнопка «Редактировать список действий» всегда присутствует там, где показано на видео
Не может быть, чтобы кнопки не было (отправьте скриншот формы настроек мне на почту)

Добрый день,почему-то то, как выглядит настройка на видео, не совпадает с текущим представлением.
После того, как задается режим "фиксированное исходное значение" вы внизу нажимаете "Редактировать список действий",
однако у меня в настройках этой кнопки нет.

Вкладка Вывод на лист - подвкладка Настройки листа для вывода

Цитата из справки:

Столбец, по которому определяется последняя заполненная строка таблицы.
Очень важный параметр, который позволяет правильным образом сформировать таблицу. Если при значении по умолчанию 1 "А" у вас первый столбец будет пустым, то парсер будет перезаписывать данные в одной строке, не формируя таблицу.

 

Добрый день!
Скачал пробную версию, при парсинге парсер заполняет только одну строчку ячеек и постоянно заменяет новым значением.
В итоге вместо списка в итоге получаем только одно последнее значение.
Подскажите, в чем может быть проблема?

Александр, не используйте кодировку gzip. В 99.9% случаев, всё работает и без неё.

Здравствуйте Игорь. При работе парсера выходит ошибка "Ошибка расшифровки GZIP: библиотека gzip.dll не установлена в системе". Файл gzip.dll находиться в папке Мои документы.

Здравствуйте, Евгений
Прокси разные бывают, - "анонимные" и "прозрачные"
Через некоторые прокси ваш IP адрес виден. Через некоторые - нет.

Игорь, добрый день!
Можете подсказать, как работают прокси в парсере, не могу понять.
Прописал в парсере прокси, выводит сообщение "Активация прокси сервера: #1", например. Но если я пытаюсь загрузить исходный код страницы нужного мне сайта, то он определяет мой IP-адрес.
Можете вкратце описать как работают прокси с действиями в парсере или выложить небольшой пример.
Заранее спасибо!

Нет, так не задумано
Видимо, на этом компе когда-то ранее эта программа запускалась,
потому, 10 дней с момента первого запуска уже прошли.
Напишите мне в скайп или на почту, решим проблему.

Ну как бы при первом запуске рассказывает, что пробный период закончился :-(
Это так задумано?

Просто удалите файл надстройки, и папку Настройки парсеров.
Предварительно, если включали опцию автозапуска, отключите её (О программе - Опции)

Подскажите, как полностью удалить эту надстройку и все что ее касается? Инструкция по удалению есть? Где посмотреть можно?

Здравствуйте, Виталий.
Всё это возможно.
По цене ничего не могу сказать, пока нет четкого задания.

Здравствуйте! Скажите, пожалуйста, получится ли реализовать следующее:
1. На сайте, который нужно спарсить, таблицы с данными подгружаются после выбора нужных значений из выпадающего списка. Мне нужно чтобы я в excel создал такие же выпадающие списки, и, при выборе нужных мне значений парсер брал данные с таблиц, значия которых, я выбрал в excel.
2. Нужно парсить данные в разные файлы, в разные вкладки. Файлы и вкладки создам сам, и нужно будет парсить в нужные мне ячейки.
Если да, постараюсь подробно расписать в задании, что я от вас хочу. Также интересует цена вопроса, сильно ли изменится от стандартной из-за заморочек всяких?

Александр, а настройках этого столбца в парсере, на вкладке Формат, есть галочка «Перенос текста»
Включите её, и проблема будет решена

Игорь здравствуйте, подскажите получил значения в парсере в виде четырех наборов цифр, разделенных переносами. При выводе в Excel отображается в ячейке в оду строку без переносов, хотя при просмотре в строке формул они разделены переносами http://prnt.sc/my1tq8. Если встать на эту ячейку и щелкнуть в строке формул а потом Enter, в ячейке значения выстраиваются с учетом переносов, но таких строи и значений в моем проекте очень много. Подскажите как перенести такие данные с переносами.

Игорь, так ведь парсер и так в коде страницы ищет? Или вы что-то другое имеете ввиду..
То есть я выгружаю исходный код. И пытаюсь найти там штуку, которая в коде страницы выглядит вот так "...id="js-average-rating">9.15/10<...".
Пытаюсь вытащить 9.15/10, но в парсере выводит "...id="js-average-rating">N/A<...".
Потому что он мне выгружает код страницы изначальный, без выполненного действия по нажатию на всплывающую вкладку и, соответственно, отработавшего скрипта.
С помощью IE, я так понял, это может работать, если осуществить действие щелчка по элементу, т.е. открытие этой вкладки?

Виктор, тут 2 варианта:
1) найти эти данные (которые потом использует скрипт) в коде страницы (например, она в javascript переменной могут быть)
2) загружать страницу с использованием браузера Internet Explorer, - тогда скрипты отработают


По копипасту, - всё везде работает (если параметр действия подразумевает ввод пользователем данных)
Т.е., если можно ввести вручную что-то, то можно и вставить через Ctrl + V

Игорь, добрый день!
Подскажите, пожалуйста. Парсил 3 значения со стандартного формата странички. Недавно интерфейс на сайте поменяли и вывели 1 из 3 значений на всплывающую вкладку. Парсер теперь оттуда забирает только N/A или 0, потому что цифровое значение там появляется с выполнением jскрипта. Каким образом теперь можно вытащить нужное значение с помощью парсера?

Скажите, как в программе работает копипаст? Имею ввиду, что при настройке некоторые данные приходится вбивать руками. Функция копировать-вставить как будто недоступна.

Александр, я не консультирую по вопросам настройки программы под сайты.
Можем настроить под заказ.

Подскажите пожалуйста как на этом сайте https://www.daz3d.com/shop/ получить ссылки пейджера? И какой командой можно перейти на следующую страницу каталога?

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

Вопрос, а как быть с фенси боксами, в html он не указан, выловить через что???Каким образом? Просто в привьюхе есть фото, но она маленькая, а нужна большая из фенсибокса.
Спасибо

Всё, что есть, - в справке по программе

Есть ли какие то примеры, по настройке автозапуска?

Если автозапуск работал, - проблема явно не в программе. Что-то сбили в настройках планировщика windowd, раз перестало запускаться.