Парсер для интернет-магазина 

 

Добрый день, уважаемые юзернеймы. Мне, как программисту, была поставлена интересная задача - спарсить 20 000 тысяч наименований товара с веб-сайта одного известного интернет-магазина. До этого мне приходилось делать парсеры только в учебных целях. Задача была интересная и новая для меня. Поэтому, прошерстив сайт Сергея Бринна, ваш покорный слуга принялся за дело... разработать программу парсера для интернет-магазина.

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

 

Парсер интернет-магазина на PHP: проблемы и решения

 

Для разработки парсера (а по сути граббера интернет-магазина) выбор пал на язык PHP, так как заказчику нужна была интеграция с его интернет-магазином, написанным именно на данном языке. На учебе нас часто заставляли в обязательном порядке использовать для парсинга регулярные выражения. Но эта идея была отброшена тут же, как полная безумия. Была выбрана библиотека HTML SIMPLE DOM. По ней оказалась куча информации в интернете, так что проблем с её разбором не возникло. Из PHP, кроме основ, нужно было разобраться в работе с URL. Вся работа велась с локального сервера, так что пришлось поставить на мою убунту LAMP. Этого мне оказалось достаточно для того, чтобы выполнить ТЗ.

Первая проблема, которая возникла — ограничение на количество запросов к сайту-донору. Сервер думал, что мой парсер пытается его ддосить. Вылечилось кодом

 

sleep(4);

 

что крайне негативно сказалось на скорости выполнения. Прасер засыпал на 4 секунды после считывания информации об одном товаре. Время было выбрано опытным путем.

Известно, что DOM любит есть очень много оперативной памяти. При парсинге самых больших категорий я выставлял весьма внушительное количество ОЗУ.

 

ini_set("memory_limit", "256M");

 

Тогда хватало. Иначе могло ругаться на нехватку.

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

Но наиболее значимая проблема — уязвимость к изменениям на сайте-доноре. Если ТАМ захотят поменять, к примеру, название класса HTML — в парсере это тоже придется сделать. Так что без техподдержки это приложение скорее всего не долго будет корректно работать.

 

Итого на выходе получилось небольшое веб-приложение, которое на вход принимает URL категории, которую требуется спарсить, и категорию из списка, куда нужно писать информацию. А на сайте появилось на 20 тысяч товаров больше. Спасибо за внимание.

Парсер

При возникновении вопросов относительно продвижения сайтов, продвижения интернет-магазинов, включая решения парсинга контента интернет-магазинов Вы можете звонить по тел.: (095)-300-57-57.

Статья создана в гараже Веб-Машины 29.12.2015 года. Автор - Артем Петров.

 

Рейтинг:  4 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна
 

 

и получите бонус: аудит Вашего сайта в подарок!
Мы свяжемся с Вами в течение 20 минут (в рабочее время)

Введите имя
В номере есть ошибка или поле не заполнено
Поле пусто
ОТПРАВИТЬ ЗАЯВКУ