Парсинг сайтов

Парсер - что это такое?

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

Зачем и кому нужен парсинг сайтов?

Парсинг сайта нужен для автоматического получения отчета, на базе которого принимается решение.

Другими словами парсинг сайта нужен при работе с большими объемами информации на каком-либо сайте, то есть тогда, когда ручной просмотр сайта с целью получения какого-либо отчета дороже, чем автоматическое получение этого отчета.

Примеры таких отчетов

  • Список товаров на сайте Интернет магазина конкурента с меньшими ценами, чем цены на товары с тем же артикулом или UPS (Universal Product Code) на собственном сайте заказчика.
  • Получение дополнительной информации (картинки, описание, классификация и т.д.) о товарах Интернет магазина путем парсинга сайта производителей этих товаров с целью наполнения этой информацией собственного сайта.
  • Анализ динамики цен на интересующие заказчика товары. В таких случаях парсер нужно запускать регулярно, чтобы снимать срезы интересующих показателей.
  • Была у меня задача, когда нужно было создать возможность заказа товаров во внутреннюю систему учета, а не на сайте оптового поставщика. Связано это было с тем, что во внутренней системе учета был алгоритм, который определял, сколько и каких позиций нужно заказать у поставщика из списка имеющихся в наличии.
  • Еще один важный пример, который тоже можно отнести к парсингу – это случай, когда сайт, с которого необходимо получить информацию, уже предлагает эту информацию в структурированной форме, ее нужно лишь добавить в базу данных заказчика. Примером такого парсинга можно считать получение курсов валют с сайта ЦБ.

Парсеры - полуфабрикаты

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

Конечно же, парсеры полуфабрикаты не могут полноценно выполнять задачи сравнения цен на товары между ценами на товары заказчика и ценами на товары конкурентов заказчика. Максимум, что они могут сделать – это выгрузить названия товаров и цены на них в Excel. И дальше уже – задача сотрудников заказчика «вручную» догадаться, идет ли речь об одном и том же товаре, или же о разных, но с похожим названием.

Парсеры поисковых систем

Лучше всех в задачах парсинга сайтов преуспели команды поисковых систем: Google, Yandex, Bing и прочих. Но и у них не всегда и не все получается гладко.

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

Пример результатов парсинга в рамках поиска от Яндекса.

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

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

Если у вас есть такая задача – пишите.