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

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

 

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

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

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

Комментарии

Возможно офтоп. Есть ли возможность из файла xls по шаблону перегнать данные в xml ? спасибо

Благодарю!

Эдуард, это возможно.
Читайте справку по действию "Случайное число"

Здравствуйте, Игорь!
Хочу спросить, нельзя ли в парсере реализовать возможность установки задержки между очередным запросом по генератору случайных чисел. В Экселе есть подобные встроенные функции. Генерация значения в диапазоне от и до. Столкнулся с тем, что на буржуйских ресурсах ПО определяет , что запросы посылает не человек, что сделать не сложно, учитывая, что период постоянен. А так можно будет прикинуться юзером.

Игорь, вы уже отвечали Олегу на этот вопрос, но я не смог разобраться, как вывести каждый элемент массива в отдельную строку в один столбец, не могли бы объяснить более подробно. Спасибо.

Спасибо разобрался.

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

Игорь, подскажите, пожалуйста как работает щелчок по кнопке в парсере. Никак не получается разобраться.
Точнее нахождение элемента.
Делаю Открыть страницу в IE. Он вроде бы открывает, выводит мне исходный код.
Но с кнопкой дальше что-то никак.
Я в коде страницы кнопку нашёл. Там внутри button есть параметр class и id есть.
Я так и так по-разному пытался что-нибудь подставить в действие Найти элемент в IE.
Никак не получается.
Очень нужно разобраться с этой темой :(

Нашел практически нужную функцию "Вывод строки на заданный лист" НО там нельзя указать номер столбца куда выводить(((

Вот где нужен цикл.
1. получаю массив блоков в каждом блоке подряд несколько цен с одинаковым названием продукта и одинаковыми тегами (число варьируется!!!)
2. беру блок, определяю сколько названий продукта в блоке
3. запоминаю в переменную "количество"
4. получаю массив цен из блока, беру последнюю цену (далее идет вывода на лист)
5. уменьшаю переменную количества на 1 и беру предпоследнюю цену
и т.д.
и без цикла тут не обойтись, если есть вариант обойти "Вернуться к действию" буду благодарен за совет.

Здравствуйте, Роман.
Циклы не нужны
В вашем примере, достаточно 2 действия:
1) Разбить текстовую строку на массив (получим массив из 3 названий парсеров)
2) Запустить другой парсер (в это действие будут поданы элементы массива по очереди, и 3 этих парсера запустятся один за другим)
Чем не цикл? Зачем что-то изобретать?

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

Игорь, спасибо за способ с ПДФ файлом, это многократно быстрее и больше нет ошибок из-за того, что IE не успевает иной раз прогрузить файл.

По поводу циклов, я бы тоже от них отказался, но не во всех случаях понимаю, как это сделать, не городя огород. Например, нужно запустить несколько парсеров, список этих парсеров берется из ListBox, по виду Парсер2|Парсер6|Парсер10. Как их засунуть по одному в действие "Запустить другой парсер", ведь массив туда никак, надо разбивать, и циклы вижу лучшим решением.

Кстати, чуть не забыл, вот случай цикла, когда он отрабатывает неправильно. <ссылка удалена> Закономерность такая - добавляется очередной массив при следующих значениях счетчика: 3,5,8,12,17,23,30 и т.д. То есть увеличение идет: +2,+3,+4,+5,+6 и т.д.

... а я цикл на "Вернуться к действию" построил, правда результат пока нестабилен ;) но это наверное из-за некорректной привязки к тегам.. Я так думал....

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


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

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. Нужно парсить данные в разные файлы, в разные вкладки. Файлы и вкладки создам сам, и нужно будет парсить в нужные мне ячейки.
Если да, постараюсь подробно расписать в задании, что я от вас хочу. Также интересует цена вопроса, сильно ли изменится от стандартной из-за заморочек всяких?

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

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