Как я писал парсер интернет-магазина

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

 

Добрый день, уважаемые юзернеймы. Мне, как программисту, была поставлена интересная задача - спарсить 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 года. Автор - Артем Петров.

 

Какой способ продвижения интернет-магазина самый эффективный?

  • PPC-реклама, в т.ч. товарная реклама
  • Ремаркетинг
  • Реклама в Youtube
  • Ценовые агрегаторы
  • Оффлайн-реклама
  • Рекомендации
  • SEO-продвижение
  • SMM и реклама в социальных сетях
  • Партизанский и крауд-маркетинг
  • Видео обзоры
  • Маркетплейсы
голосовать
PPC-реклама, в т.ч. товарная реклама 18.13% (451 голос)
Ремаркетинг 1.81% (45 голосов)
Реклама в Youtube 2.21% (55 голосов)
Ценовые агрегаторы 3.94% (98 голосов)
Оффлайн-реклама 0.44% (11 голос)
Рекомендации 9.85% (245 голосов)
SEO-продвижение 30.52% (759 голосов)
SMM и реклама в социальных сетях 24.73% (615 голосов)
Партизанский и крауд-маркетинг 4.46% (111 голос)
Видео обзоры 2.65% (66 голосов)
Маркетплейсы 1.25% (31 голос)
Всего голосов 2487
Вернуться к голосованию