Автоматичний парсинг товарів з сайтів магазинів
Рейтинг статті: / 1
НайгіршеНайкраще 
Ми весь час від часу купуємо різні товари. Перед покупкою чого-небудь більш-менш дорогого або рідкого, ми, як правило, спершу шукаємо товар в інтернеті. Зараз на ринку пошуку товарів домінують Яндекс.Маркет і Price.ru, проте велика частина їх баз даних - товари з інтернет-магазинів.
Інтернет-магазини - чудовий винахід, але найчастіше потрібно помацати товар руками перед покупкою, порівняти з іншими товарами, подумати ... Виникає необхідність знайти офлайновий магазин з шуканим товаром і бажано якомога ближче (враховуючи проблеми з транспортом) і дешевше. Періодично стикаючись з цією проблемою, автор прийшов до думки, що непогано б створити зручний сервіс, здатний здійснювати пошук по всіх можливих каталогах і прайс-листах, доступних в Інтернеті, і виводити цю інформацію наочно на карті міста.
Основне завдання при створенні такого сервісу - як зібрати всю цю інформацію і вчасно оновлювати. Просити у магазинів подати дані в своєму форматі, як це роблять Price.ru і Я.М, - вкрай витратний і повільний шлях. Автор прийшов до єдиного можливого і розумного варіанту - індексації сайтів магазинів в автоматичному режимі. Як ви розумієте, завдання зовсім не тривіальне ...
Людині, глянувши на сторінку каталогу, не складно визначити, де знаходяться товари, а де - решта частин шаблону. Однак, для пошукового робота опис товару - це всього лише один з блоків на сайті, в якому найменування, наприклад, може бути відділене від ціни кількома десятками кілобайт тегів і йти вперемішку з різною службовою інформацією.
Подібні завдання входять в область data mining'a - виявлення прихованих закономірностей або взаємозв'язків між змінними у великих масивах необроблених даних © Wikipedia. Шляхом проб і помилок вдалося створити алгоритм, здатний робити вибірку товарів зі сторінок довільного сайту без будь-яких ручного налаштування або коригування, який обробляє 95% сайтів без помилок. Складність представляють лише сайти, на яких ціна або валюта відображаються у вигляді зображення, ціна вказується тільки в індивідуальній картці товару і з дуже великою кількістю помилок в HTML-коді (безліч незакритих тегів, наприклад).
Алгоритм складається з декількох послідовних блоків, що використовують методи кластеризації, нечіткої логіки, статистичний аналіз.
Крім автоматичного парсинга HTML-сторінок, був розроблений парсер xls-файлів, у форматі яких багато магазинів викладають прайс-листи. Парсер так само здатний в автоматичному режимі знаходити потрібні стовпці у файлі (найменування, опис, ціну) і визначати валюту. Використовуються схожі з HTML-парсер методи. Автор обіцяє написати більш докладну статтю про те, як все це реалізовано, а поки-що продовження розповіді про сам сервіс.
Отже, зустрічайте:
Пошукова система GoodsMap.ru, яка вміє шукати товари в усіх можливих джерелах і наочно відображати результати на карті:
Натиснувши на маркер магазину, можна дізнатися його контактну інформацію і список знайдених в ньому товарів:
На даний момент сервіс працює в тестовому режимі, доступний тільки пошук товарів на карті Москви.
Повністю стаття російською: habrahabr.ru
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting