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

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

 

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

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

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

Комментарии

Здравствуйте! Решил попробовать разобраться с парсером. Например, с сайта http://www.gismeteo.ru/city/daily/5089/ нужно вытащить температуру в разных районах области - меняются только последние цифры в ссылках, их берем за исходное значение. Далее вытаскиваю из кода то, что нужно (самое сложное оказалось самым лёгким). Работает. Вот только при повторном запуске значения в таблице подставляются ниже, старые не стираются. Как сделать так, чтобы старые значения переписывались заново? Пробовал запускать действие "Очистить лист от данных" с параметрами FirstCell="C2"; Clean Type="ClearContens", при тестировании действий очищает как нужно, но при реальном запуске глючит - очищает и ячейки в столбцах левее столбца "С".
Пожелания:
1) В настройках вывода данных в выбранный столбец добавить возможность указания первой ячейки (строки), куда выводить первый результат.
2) В действие "Очистить лист от данных" добавить возможность указания диапазона ячеек, а не только одной верхней левой ячейки.

Мы настраиваем парсеры под заказ (платно), и под конкретные сайты.
Высылайте на почту пример результата в файле Excel, и описание, с какого сайта какое номера и email надо взять.

Не могли бы вы выслать готовый парсер по извлечению номеров определенных операторов (код)
и емайл.

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

Почему-то у меня после первого же действия "Загрузить страницу с приемом Cookies" вылетает ошибка Compile error in hiden module: mobBALLOON.
Весь список действий указал. При тестировании поставил флаг на Остановить обработку на выделенном действии.

Здравствуйте
Тут все от конкретного сайта зависит

Открываете в браузере инструменты разработчика (нажатием Ctrl + Shift + I),
переходите на вкладку Network (где отображаются все отправляемые запросы),
и смотрите, какой запрос с какими данными отправляется при нажатии на кнопку авторизации.

Сделал для вас небольшой пример для авторизации на Яндексе

Здравствуйте, вы не могли бы на примерt объяснить как организовать авторизацию на сайте с помощью парсера.
В общих чертах понятно, что через get и post, но вот практически не могу добиться результата.

Да, можно и вычисления выполнить.
Самый простой способ, — вывести в ячейку формулу типа =RC5/ЗначениеКурса

Здравствуйте! Скажите, а есть возможность проводить вычисления? Есть цена в рублях, а надо в отдельную колонку цену в долларах записать, взять значение в колонке 5 разделить его на курс и записать в колонку 10 новое значение. Это возможно?

Здравствуйте.
Для этого, надо создавать новую книгу не в разделе «исходные данные» (т.к. действия этого раздела выполняются столько раз, сколько исходных значений на листе),
а создавать ПРИ ЗАПУСКЕ ПАРСЕРА (вкладка ДОПОЛНИТЕЛЬНО - наборы действий - создаете там новый набор действий с именем Parser_Start, и в нём одно действие - создать новую книгу Excel)

или же, второй вариант, вместо действия «создать новую книгу Excel»,
открыть вкладку «вывод на лист», и там, на вкладке «настройки листа для вывода»,
поставить галочку «При запуске, создавать новый файл для вставки данных»

PS: Выберите один способ из 2 предложенных (оба сразу не надо)

Здравствуйте! Что-то никак не получается выводить данные в другую таблицу. Исходные данные - ссылки в 10 столбце текущей книги. Список действий на странице "исходные данные" 1 - "Создать новую книгу Excel" 2 - "Загрузить исходный код веб страницы". В результате получается куча новых книг и в каждой по 1 строке, алгоритм мне понятен при переходе на новую ссылку выполняется команда "создать новую книгу". А как сделать, что бы парсер работал согласно алгоритму: создать новую книгу, а дальше обрабатывать ссылки до конца файла. Что бы в результате получить 1 новую книгу со списком строк?

Здравствуйте, Александр.

Вы можете заполнить сколько угодно строк
1) загружаем очередную страницы (получаем исходный код)
2) находим на ней нужную таблицу (поиск элемента по ID или имени класса)
3) получаем массив строк таблицы (действие «поиск заданных тегов» - тег TD)
4) откидываем лишние строки (действие «Проверка на выполнение условия»)

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

чтобы это все не тормозило, - надо использовать подуровни (чтобы программа начинала вывод данных по мере обработки, а не после того, как загрузит все 200 тыс страниц)

Если сами не разберетесь, - можем настроить под заказ

Уважаемый администратор, здравствуйте!
Во-первых, огромное спасибо за Вашу работу - безумно полезная штука! и что самое главное гибкая.+++
В свое время была необходимость загрузить сайт - пришлось писать вручную на С++. А тут Вы такую штуку подогнали - просто БЕСЦЕННО!!!)

Во - вторых вопрос: скажу честно глубоко примеры не изучил, но в 4 просмотренных не нашел нужной фичи.
Необходимо: на загружаемых страницах (их порядка 200 тысяч) имеются таблицы, в которых могут присутствовать данные или нет, в каких-то 0 строк, в каких-то - 50.
Шапка таблицы одна.
Цель: с каждой страницs необходимо загружать данные в одну таблицу!
Пока по примерам я понял что я могу заполнить лишь одну строку таблицы, нельзя-ли используя имеющиеся функции запилить цикл в составе обработки одной страницы?

Еще раз, ОГРОМНОЕ СПАСИБО, за Вашу РАБОТУ!!!

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

Высылайте на почту пример результата в файле Excel - настроим парсер под заказ

Каким образом можно спарсить информацию с сайта:

http://www.gdeetotdom.ru/realtors/search/?rid=1232535&dstr=408887&rubr=1

Нужно спарсить номер телефона, который в коде имеет нижеприведенный вид (не проявляется). При нажатии на сайте на ссылку "позвонить" появляется номер телефона.

alex.club, извиняюсь за допущенную ошибку.
Залил исправленную версию

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

24 января 2015 г. в 07:05 стало доступно обновление программы «Parser» (версия 1.1.1).

Изменения в новой версии программы:

+ добавлены новые действия
+ значительно ускорен процесс загрузки / сохранения настроек парсера
- исправлена ошибка в функции конвертации JSON в XML
+ стало возможным выводить в ячейки гиперсылки на локальные файлы
+ добавлено информационное окно для вывода сведений об ошибках загрузки, редиректах, и устанавливаемых Cookie

Рекомендуем обновить программу до последней версии!

1) Моя программа может сохранить загруженные данные и в CSV формате
2) Мой скрипт, он для Excel (это надстройка для Excel), но никак не для сайта
И запускается всё, соответственно, нажатием кнопки в Excel
А файл CSV вы уже потом можете вручную импортировать на сайт

1) А в csv-формате сможет?
2) Ваш скрипт он же у нас будет храниться на сервере (чтоб мы его потом могли запускать)?

Здравствуйте, Алексей.
Моя программа не копирует с сайта на сайт.
Она выгружает данные в Excel (данные - в таблицу Excel, картинки - в заданную папку)
Опции загрузки скачанного на сайт, в программе нет.

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

Добрый день!
Сможем скопировать каталог товаров с сайта http://www.chisto.ru/
Копировать нужно будет на сайт сделанный на битриксе

Нужно чтобы каталог обновлялся постоянно.
Интересуют сроки и цена (если такое возможно)

Юлия, версии надстройки под Мак нет и не будет (слишком много переделывать)
Мои программы работают только в Excel под Windows.
Счастливые обладатели Mac пользуются моими надстройками под Parallels


alex.club, приостановку при отсутствии инета я может и сделаю в следующих версиях,
но это не решит проблему полностью, если инет пропадает и появляется.
Вот как проверить наличие инета? Пингом до какого-то вечно работающего сайта типа google?
Ну, допустим, пинг прошёл (инет есть), начинаем грузить страницу, - и тут инет снова отвалился...
Как моя программа поймёт, - это страница конкретная недоступна, или с инетом проблема?
Я понимаю вашу просьбу, - подобный функционал действительно нужен.
Просто пока плохо представляю себе, как это реализовать.
А вообще, использование программы-парсера подразумевает наличие нормального стабильного интернета...

Спасибо. Это не подходит,тогда пассер остановиться, нужно чтобы он приостанавливался при отсутствии интернета, а при появлении продолжал сканирование.

Можно ли алаптировать надстройку под excel для mac?

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

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

Дмитрий, техподдержка осуществляется только в голосовом режиме: http://ExcelVBA.ru/help
Позвоните, — я покажу, как лучше сделать.

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

Большое человеческое спасибо!
съэкономил мне невероятное количество человеко-часов!

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

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