Какой парсер выбрать для сбора характеристик товаров из Яндекс Маркета?

Посоветуйте хороший парсер характеристик товаров с яндекс маркета. Желательно без необходимости допиливания и возможностью сразу получать фотографии товара. Должны же быть какие-нибдуь платные решения для этой задачи.
  • Вопрос задан
  • 5035 просмотров
Пригласить эксперта
Ответы на вопрос 2
Как то давно писал парсер маркета, вот метод, ищет по запросу self::$partNo, хотя сегодня можно получить доступ к Контентный API что несомненно будет лучше для использования.

protected function YandexMarket (){

        $url = 'http://market.yandex.ru/search.xml?text='.urlencode(self::$partNo); // UE40F6400
        $simple = file_get_html($url);
        $searh = $simple->find('.b-offers_type_guru .b-offers__title a',0)->href;
        if (is_null($searh)){return false;}
        $title = $simple->find('.b-offers__spec',0)->plaintext;
        $simple = file_get_html('http://market.yandex.ru'.$searh);

        $name = $simple->find('h1.b-page-title',0)->plaintext;
        $category = $simple->find('.b-breadcrumbs__link',0)->plaintext;
        $imgBig = array();
        $images = $simple->find('span.b-model-pictures__small a');
        if (is_null($images)){
            $imgBig[] = $simple->find('.b-model-pictures__big a',0)->href;
        }else{
            $imgBig[] = $simple->find('.b-model-pictures__big a',0)->href;
            foreach ($images as $img){
                $imgBig[] = $img->href;
            }
        }
        if (is_null($imgBig[0])){
            $imgBig[0] = $simple->find('.b-model-pictures__big img',0)->src;
        }
        $simple = file_get_html('http://market.yandex.ru'.$simple->find('.b-switcher__item a[href^=/model-spec.xml]',0)->href)  ; // на страницу с параметрами
        if (!($simple->find('.b-properties',0))){return false;}
        if (!($simple->find('.b-properties',0)->find('tr'))){return false;}
        $description = $simple->find('.b-properties',0)->find('tr');
        $descrpt = '';
        foreach ($description as $el){
            $descrpt .= $el->first_child()->plaintext.'§ '.$el->last_child()->plaintext.'®';
        }
        $description = $descrpt;
//        $simple = file_get_html('http://market.yandex.ru'.$simple->find('.b-switcher__item a[href^=/product/]',0)->href); // на страницу с параметрами
//        $posts = $simple->find('.b-aura-reviews');
//        $array_post = array();
//        foreach($posts as $post){
//            $user_post  = $post->find('.b-aura-username',0)->plaintext;
//            $rating     = $post->find('.b-aura-review__rate .b-aura-rating',0)->rate;
//            $text = $post->find('.b-aura-review__verdict .b-aura-userverdict');
//            foreach ($text as $element){
//                if ($element->first_child()->plaintext == 'Достоинства:'){$plus   = '<strong>'.$element->first_child()->plaintext.'</strong>'.$element->last_child()->plaintext;}
//                if ($element->first_child()->plaintext == 'Недостатки:' ){$minus  = '<strong>'.$element->first_child()->plaintext.'</strong>'.$element->last_child()->plaintext;}
//                if ($element->first_child()->plaintext == 'Комментарий:'){$commet = '<strong>'.$element->first_child()->plaintext.'</strong>'.$element->last_child()->plaintext;}
//            }
//            $array_post[] = array(
//                'user'      =>  $user_post  ,
//                'rating'    =>  $rating     ,
//                'plus'      =>  $plus       ,
//                'minus'     =>  $minus      ,
//                'comment'   =>  $commet
//            );
//        }
        self::$parser = 'Yandex.Market';
        self::$param = array(
            'name'         => $name          ,
            'category'     => $category      ,
            'title'        => $title         ,
            'description'  => $description   ,
            'images'       => $imgBig
        );
        return true;
    }
Ответ написан
Комментировать
stepan_sib
@stepan_sib
head, hands, hard working, contracts
У меня есть свой парсер. Недавно яндекс изменил верстку, я это уже учел. Могу выложить на гитхаб сегодня/завтра, если нужно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы