Добрий день, шановні юзернейм. Мені, як програмісту, була поставлена цікава задача - Спарс 20 000 тисяч найменувань товару з веб-сайту одного відомого інтернет-магазину. До цього мені доводилося робити парсери тільки в навчальних цілях. Завдання було цікава і нова для мене. Тому, прошерстів сайт Сергія Бріна, ваш покірний слуга взявся за справу. розробити програму парсеру для інтернет-магазину.
У статті я не буду розповідати про те, що таке парсер, як навчитися програмувати за 21 день, як захопити світ і інші подобу речі. Швидше це огляд того інструментарію, який я використовував, проблем, з якими зіткнувся і, найголовніше, результатів, які були досягнуті.
Парсер інтернет-магазину на PHP: проблеми та рішення
Для розробки парсеру (а по суті граббера інтернет-магазину) вибір припав на мову PHP, так як замовнику потрібна була інтеграція з його інтернет-магазином, написаним саме цією мовою. На навчанні нас часто змушували в обов'язковому порядку використовувати для парсинга регулярні вирази. Але ця ідея була відкинута відразу, як повна божевілля. Була обрана бібліотека HTML SIMPLE DOM. За нею виявилася купа інформації в інтернеті, так що проблем з її розглядом не виникло. З PHP, крім основ, потрібно було розібратися в роботі з URL. Вся робота велася з локального сервера, так що довелося поставити на мою Убунту LAMP. Цього мені виявилося досить для того, щоб виконати ТЗ.
Перша проблема, яка виникла - обмеження на кількість запитів до сайту-донору. Сервер думав, що мій парсер намагається його ДДОС. вилікувалося кодом
що вкрай негативно позначилося на швидкості виконання. Прасер засипав на 4 секунди після зчитування інформації про один товар. Час було вибрано дослідним шляхом.
Тоді вистачало. Інакше могло лаятися на брак.
На сайті-донора і в базі даних мого сайту виявилися різні кодування. Це з'ясувалося, коли вже Спарс пристойну кількість товарів. Про таку ймовірність краще б подумати заздалегідь.
Але найбільш значуща проблема - вразливість до змін на сайті-донора. Якщо ТАМ захочуть поміняти, наприклад, назва класу HTML - в парсером це теж доведеться зробити. Так що без техпідтримки це додаток швидше за все не довго буде коректно працювати.
При виникненні питань щодо просування сайтів. просування інтернет-магазинів, включаючи рішення парсинга контенту інтернет-магазинів Ви можете дзвонити по тел. (095) -300-57-57.
Рейтинг: 4/5