Парсинг товаров с интернет магазина при помощи phpQuery

Небольшое предисловие

По долгу службы(лол) приходится довольно часто парсить всякого рода контент, при чем в приличных количествах. Дабы не ломать себе мозг регулярками проще использовать библиотеку для парсинга, благо таковые имеются в наличии. Сравнение различных либ можно найти тут http://habrahabr.ru/post/114323/.

Сначала пользовался библиотекой PHP Simple HTML DOM. Хочу сказать довольно медленная и глючная штука. Часто из-за глюков приходилось городить костыли, пока в один прекрасный момент решения не нашлось и я не перебрался на phpQuery — порт jquery на PHP.

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

Пример парсера с использованием phpQuery

В качестве подопытного выступит сайт интернет магазина topbrands.ru, так как цены относительно высокие и 11% комиссии  при продаже товаров через партнерку  ActionAds (осторожно! рефка :-D) сулит не плохие деньги. (Если верить Dimax-у). Некоторые скажут, мол зачем заморачиваться, если инет-магазин предоставляет xml выгрузку товара? Да это действительно так, однако как показала практика актуальность предоставляемого xml дампа оставляет желать лучшего, т.к. немалое количество позиций отсутствует.

Код парсера:

По-сути парсер магазина занял каких-то 30 строк. При наличии хотя бы начальных знаний jquery и php соорудить подобный скрипт для любого другого магазина не составит труда.

В примере вся сграбленная информация складируется в массив $products для наглядности, но немного модифицировав парсер ее можно обрабатывать как угодно, например автоматически наполнять wordpress.

22 октября 2013г. в 17:45

Спасибо за линк)

Слушай, а ты хмл дамп в ActionAds только смотрел? Я сейчас скачал в ActionPay дамп этого оффера, у него в коде дата терпимой свежести в принципе:

То есть всего пара дней прошла, может в твоей партнерке просто ее дамп давно не обновлялся))

22 октября 2013г. в 17:46

Упс, вордпресс похерил кусочек хмл-кода с датой, короче дата там такая стоит: yml_catalog date=»2013-10-20 06:16:14″

krob
22 октября 2013г. в 18:01

В том то и прикол, что дамп я брал прямиком с магазина, при чем дата вчерашняя стоит (yml_catalog date=»2013-10-21 16:54:40″), а товаров ощутимо так не хватает.

23 октября 2013г. в 10:41

Хм, оч странно, напиши в суппорт партнерки, пусть у оффера спросят, какого хрена у них с дампом))

27 октября 2013г. в 21:33

Nokogiri побыстрее будет=).

x
27 октября 2013г. в 21:54

мне кажется, все в канал упирается, так что вопрос «кто быстрее разберет контент» не очень актуален.

krob
29 октября 2013г. в 11:15

не знаю как другие либы, но simple html dom намного медленнее работает чем phpquery , которое сейчас юзаю. так что дело не в канале

Lyusida
5 февраля 2014г. в 19:56

Согласна! simple html dom очень долго работал — одну страницу не мог распарсить за 60 сек! написала на phpQuery — одна страница за 2 сек — все летает =)

Оставить комментарий

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой:

Яндекс.Метрика