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

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

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

 

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

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

 

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

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

Комментарии

Добрый день не подскажите почему так. Ситуация три столба А1 Б1 С1. А1=URL Б1=Keywords С1=Заголовок H1. Все данные выводятся корректно иногда происходит сбой не выводит данные Б1 или С1.

Добрый день!

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

Для обращения к другим столбцам используете маску вида {1!}, где 1 - это номер столбца.

Если не разберетесь, напишите мне в скайп - antonmashkin

Здравствуйте.
Искал инструкцию по получению исходных данных для парсинга с листа Excel, не нашел.
Можно ли увидеть пример или инструкцию?

Заранее спасибо

Здравствуйте.
Можно узнать как Вы реализовали многопоточную загрузку?
Пишу себе парсер - 40К страниц грузит нереально долго)

Да, есть такая возможность. Обычно либо рядом есть ссылка на большое изображение, либо большое изображение получается путем замены размеров в ссылке на изображение.

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

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

Есть ли в программе возможность скомпилировать парсер в отдельную надстройку (программу) или как-то защитить парсер паролем от исправлений?

Чуть позже будет инструкция по плагинам

Добрый вечер! По плагинам когда ждать информацию.

Здравствуйте, Виталий.
Это Google Recaptcha v.2, программа умеет такую обрабатывать (действие «Решить Google Captcha v.2»)
Но инструкция по этому действию пока не готова.
Можем настроить под заказ.

Здравствуйте.
Подскажите, как работать с капчей? Такого вида капчу стандартным инструментом вашей надстройки обойти можно? https://prom.ua/captcha?url=aHROcDovLZhth-IBSaZIkcySuZXQu%20dWEchMyOTc3O...

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

Возможно ли как парсером получить характеристики фото? Т.е. есть сайт www.host.com/img/foto.jpg к примеру разрешение этого фото 320х240. Как парсером получить разрешение 320х240? Если это возможно, каким будет алгоритм?

Добрый вечер, подскажите, куда нужно вставлять действие - "Запланировать запуск парсера"? Можно закрыть парсер или он всегда должен быть открыт? Можно по подробнее расписать про это действие или пример с этим действием, если он (пример) существует на сайте, я поискал, не нашёл...

Алексей, по поводу взятия цены со страницы, я вам в скайпе написал, какие 2 действия нужно использовать:

2 действия:

1) Действие HTML - ЗАМЕНА ТЕГОВ
ищем (первый параметр) span class=kopeiki
и добавляем ДО НЕГО запятую (опция AddBeforeInnerHTML)

2) действие ВЗЯТЬ ЦЕНУ ТОВАРА СО СТРАНИЦЫ

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


возможно ли парсировать из несколько excel файлов — я не знаю, что вы под этим подразумеваете
Скорее всего, возможно

Здравствуйте возможно ли парсировать из несколько excel файлов, или есть пример на сайте похож.

Добрый день.
Как с помощью VBA сделать из двух тегов один для парсера цены товара с сайта?
Пример тега цены:

8
73
грн
Если использовать стандартное действие HTML Взять цену товара v.2 , то программа выдает тег 8 , а 73 нет.
Как их объединить? Очень нужна помощь.

Спасибо большое Николаю и Антону.

Очень элегантное решение проблемы. Ещё раз спасибо!

Вставлю свои 3 копейки. Допустим у нас есть список товаров, а именно: Comfort Prim Middle,Kids Comfort,Comfort Duos Middle/Hard,Comfort Prim Soft,Comfort Duos Soft/Middle,Comfort Prim Hard,Optima Comfort EVS1000,Round Optima Comfort EVS1000,Orto Premium Soft,Orto Premium Hard,Orto Premium Middle,Verda Hi-Soft memory,Verda Hi-Support,Verda Cloud,Verda Hi-Balance,Verda Balance,Verda Hi-Cloud,Verda Soft memory,Verda Support,Ocean Soft,Ocean Soft Transform,Optima Comfort EVS1000,Optima Concept EVS1000,Tatami Fuji,Tatami Fuji Max,Flex Zone. В действии - "Проверка на выполнения условия" в параметре "Режим проверки" выбираем RegExp (регулярные выражение, аналог "содержит", только намного "гибче"), в параметре "Значения для сравнения" пишем Verda|Comfort|Orto (расшифровка записи, если проверяемое выражение содержит Verda или Comfort или Orto, тогда... и в 3 параметре настроек "Действия при выполнении условия" выбираете, что с ними нужно сделать). Допустим мы выбрали при выполнении условия оставить, тогда на выходе мы получим только эти наименования товаров: Comfort Prim Middle,Kids Comfort,Comfort Duos Middle/Hard,Comfort Prim Soft,Comfort Duos Soft/Middle,Comfort Prim Hard,Optima Comfort EVS1000,Round Optima Comfort EVS1000,Orto Premium Soft,Orto Premium Hard,Orto Premium Middle,Verda Hi-Soft memory,Verda Hi-Support,Verda Cloud,Verda Hi-Balance,Verda Balance,Verda Hi-Cloud,Verda Soft memory,Verda Support, остальные товары парсер проигнорирует, т.к. они не удовлетворяют условию поставленной задачи. Надеюсь я подробно всё объяснил и верно уловил, что именно Вам нужно от парсера. Если я где-то допустил ошибку, надеюсь товарищи администраторы меня поправят...

Звездочка - * - это обозначение любого символа.

Поэтому когда Вы пишете *зал*, например, то сюда попадут все слова с таким сочетанием букв: вокзал, заливка, назальный и т.д.

Так что это именно тот вариант, что Вам нужен - содержит комбинации символов.

Дело в том, что мне нужна проверка не на точное соответствие условиям, а с формулировкой "содержит". Т.е., условно, из 1000 значений мне нужно оставить 300, которые не одинаковые, но каждые 100 из них содержат одинаковые комбинации символов. Т.е. мне нужно оставить значения с каждой из трёх комбинаций символов. Если такой возможности нет, то получается, что мне нужно отдельно прописывать каждые 300 точных значений. Учитывая, что в будущем будут добавляться новые значения, отличные от старых, но имеющие соответствующие комбинации символов, такой подход очень не удобен.

Дмитрий, если Вам надо оставить 2-3 значения, то используйте действие проверка на соответствие маске:
*условие1*|*условие2*|*условие3*
с параметром "Оставить", а не удалить.

Добрый вечер, Игорь!

Ситуация немного другая. Мне необходимо отбросить неверные результаты по условию "не содержит". Можно было бы использовать проверку на выполнение условия с режимом проверки "не содержит" и действием "удалить", но в этом действии можно задать лишь одно значение. Есть ли возможность задать, например, 2 значения.

В случае с "Проверкой на соответствие маске" мне придётся перечислять огромное множество значений, которые нужно удалить, вместо того, чтобы перечислить 2 или 3 значения, кроме которых все остальные нужно удалить.

Дмитрий, есть такая возможность
В действии «Проверка на соответствие маске» в первом параметре «Маска для проверки на соответствие» можно указать список значений через |
например, *Значение1*|*Значение2*|*Значение3*
Если же список большой, - можно применить таблицу замен (частичное совпадение, полная замена на «пусто»)


Дали, смотрите передаваемые данные в другом браузере (не Chrome)
Месяц назад Chrome перестал показывать передаваемые данные для POST запросов, если POST запрос выполняет редирект.
Подойдет браузер Opera, например (там всё аналогично)

Здравствуйте!
На сайте eventcatalog.ru нет в консоли браузера Form Data. Загрузка в IE тоже не помогает. ХЭЛП!
Не могу авторизоваться(
Видео просмотрел, не знаю, что делать дальше
Спасибо заранее.

Доброе утро!

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

Спасибо большое за поддержку!

Попробовал на другом компьютере (Windows 7), проблема решилась сама собой.

Александр, а зачем всё усложнять?
Действие «Загрузить ИСХОДНЫЙ КОД веб-страницы» вполне справляется с задачей, - к чему все эти отправки GET запросов?

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

Спасибо Игорь, видео очень полезное, но...никак не получается загрузить исходный код https://raiton.ru/category/matrasy/

1. Открыть HTTP соединение
URL - https://raiton.ru/category/matrasy/ Метод запроса - GET

2. Добавить заголовок запроса

:authority:raiton.ru
:method:GET
:path:/category/matrasy/
:scheme:https
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding:gzip, deflate, sdch
accept-language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
cookie:_ym_uid=1508856818332244650; _ym_isad=2; PHPSESSID=a1b5ba75960ed9f15c00d6c834575da3; BITRIX_SM_SALE_UID=1140901; BITRIX_SM_CITY_ID=14; BITRIX_SM_CUR_PRICE_TYPES=%7B%22base%22%3A5%2C%22real%22%3A9%7D; _ga=GA1.2.663184656.1508856818; _gid=GA1.2.1962885479.1509346872
referer:https://raiton.ru/category/matrasy/
upgrade-insecure-requests:1
user-agent:Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Добавил, отключил Cookies & Accept-Encoding

3. Отправить HTTP запрос и получить ответ

Нажимаю тестировать, выдает ошибку - Ошибка! Длина текстового ответа сервера = 0, в байтах: 0, ошибка -2147483638: Данные, необходимые для завершения этой операции еще не доступны. В чем проблема? Что я сделал не так?

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

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