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

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

 

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

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

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

Комментарии

Статью исправил (спасибо, что сообщили об ошибке на сайте)

Но я говорил про другую статью (где описывается настройка программы-парсера, а не отдельный макрос)
http://excelvba.ru/programmes/Parser/manuals/Authentication

PS: программа сможет работать с десятком сайтов с авторизацией
Просто настройка в некоторых случаях может оказаться очень сложной (на всех сайтах авторизация по-разному выполняется, - например, 7 сайтов может легко получиться настроить, а с 1-2 сайтами возникнут сложности)

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

Я так понял что речь идет про статью Авторизация на Яндексе с использованием WinHttpRequest? Если да то там нет содержимого, она пустая. Не могли бы вы подсказать где именно на сайте найти нужный материал? Дело в том что нужен парсер и который нужно заточить под десяток сайтов с авторизацией и пока не пойму сможет ли программа нормально с ними работать и как настроить, купить ее я вряд ли смогу. Спасибо.

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

Добрый вечер. Скажите, у парсера есть возможно собирать инфу с сайтов требующих авторизацию? Может быть плохо искал - но информации об этом или мануала на эту тему не нашел. Спасибо

Здравствуйте, Вячеслав.
Проблему устраню, - но только после 11 марта (сейчас в отпуске, нет возможности искать утечку памяти в программе)
Напишите мне в скайп, - разберемся.

PS: 200 строк для переполнения памяти - слишком мало
Возможно, вы перемудрили с настройкой, или какая-то проблема с конкретным сайтом. В любом случае, после 11 марта решим проблему.

Проблема с использованием памяти excel при работе парсера.

В колонке А указаны URL страниц с которых парсится информация.
Настроил парсер. Данные загружаются в соответствующие колонки, но есть проблема с использованием памяти.
С каждой следующей обработанной строкой объем памяти, которую использует excel увеличивается. В результате после обработки примерно 200 строк память переполняется, система начинает тормозить и в итоге excel завершается с ошибкой.
Т.к. я запускал парсер сначала на Mac под Parallels, потом пробовал на другом компьютере (PC). Пробовал под разными версиями MS Office (2007, 2010, 2013), то же самое.

Помогите разобраться, а то купил парсер и по сути не могу им нормально воспользоваться.
P.S. В файле всего около 10 000 URL (строк).

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

Добрый день! Решил воспользоваться вашей программой Parser, но возникли проблемы с поиском данных по тегам, собственно "Поиск по имени класса, поиск по id, по заданному тегу". На выходе в любом из вариантов выдает пустое значение. Это может быть из-за того, что код скрипта написанный вами частично или совсем не подходит для поиска данных с постороних сайтов.
Делал все по вашей инструкции, но ничего так и не удалось найти, находит только верстку всего сайта, отдельные данные по заданным именам не находит.
1. Можете объяснить в чем проблема?
2. Если не указаны на заданом сайте id и другие параметры, к примеру тегов, поиск так же не производится. Мне кажется, что у вас в скрипте заданы не верные параметры поиска к примеру "ClassName" - этот параметр указывается у вас в скрипте, на сайтах этот параметр указывается как "class". Может быть в этом проблема?
3. Пробовал искать по span параметру, но в данном параметре я не могу указать искомое имя по span. Могу только имя по классу задавать. Зачем тогда указывать в параметрах поиска данный параметр?

Cпасибо, попробую на основе Вашего примера "автомобили с пробегом" пересобрать парсер с нуля...
Скайпа дома нет, да и тимвьювер не тянет, инет только по USB модему - 3G с реальной скоростью EDGE (
...Хорошая надстройка, вот только побольше бы описания функций в справке.

Здравствуйте, Александр
Вы, видимо, где-то лишнюю галочку в настройках поставили, - из-за этого выводится ниже
По-умолчанию, данные выводятся при каждом запуске в те же самые ячейки.
И действие «Очистить лист от данных» в вашем случае не нужно (оно крайне редко используется, для сложных парсеров)
Позвоните мне в скайп, - я подключусь к вашему компу, и помогу с настройкой (там всё просто)

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

Здравствуйте! Решил попробовать разобраться с парсером. Например, с сайта 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 вы уже потом можете вручную импортировать на сайт