Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Парсер товаров

Итак, для нашего магазина я такого не нашел, на форуме кстати тоже, есть одна темка но и та не понятная.
В принципе товар весь есть нужен только парсер картинок.
Может кто подскажет есть ли такая программа. Загружаешь прайс, и она тебе на ролевантные товары ищет картинки.
Если нет то вот нарыл код в интернете.
Гляньте..может что и получиться :

<?php
  include('../includes/top.php');
  // require_once ('../config.php');
  // require_once (_INCLUDES.'filenames.php');
  // require_once (_INCLUDES.'database.php');
  // require_once (_CLASS.'db.php');
   
    $url = 'http://computers.wikimart.ru/computers/notebook/';

    include('simple_html_dom.php');

    $html = file_get_html($url);

    $item = array();

    $p = $html->find('div', 0);

    foreach ($p->find('a') as $_page)
    {
        if ( $_page->class != 'display_none')
        {
            $page =  $_page->href;
        }
        else
        {
            break;
        }
    }

    $p_num =  str_replace($url.'?p=', '',$page);
   
    if ( $p_num > 0)
    {
        for ($i=1; $i<=$p_num;$i++)
        {
                        echo $i.'<br>';
            get_products_page($i, $url);

           
            sleep(10);
        }
    }

    function get_products_page($page_num, $url)
    {
        global $db;
       
        $html = file_get_html($url.'?p='.$page_num);
       
        foreach($html->find('div') as $container)
        {       
            // print_r( $container->find('div.Image',0));
            $info =  $container->find('div', 0);
            $item['name'] = $info->find('a', 0)->plaintext;
            $item['url'] = $info->find('a', 0)->href;
            $item['desc'] =  trim($container->find('div', 0)->innertext);

            // $item['image'] =  $container->find('div',0)->innertext;

            $item['name2'] = trim($container->find('div', 0)->find('span', 0)->name);

            $item['price'] = trim($container->find('div', 0)->find('div', 0)->plaintext);
           
            $_db = $db->query('select products_id from '.DB_PREFIX.'products_description where products_name="'.$db->input($item['name']).'";');
           
            if ( $db->num_rows($_db) > 0 )
            {
               
                echo 'ne dob';
            }
            else
            {                                                   
              $db->query('insert into '.DB_PREFIX.'products_description (products_name,products_short_description) values ("'.$db->input($item['name']).'", "'.$db->input($item['desc']).'");');
              $id = $db->insert_id();
              $db->query('insert into '.DB_PREFIX.'products (products_id) values ('.$id.');');
              $db->query('insert into '.DB_PREFIX.'products_to_categories (products_id,categories_id) values ('.$id.', 0);');
             
            }
            //  InfoModel

            /*  $item['intro']    = $article->find('div.intro', 0)->plaintext;
            $item['details'] = $article->find('div.details', 0)->plaintext;
            $articles[] = $item;
            */
            $items[] = $item;
            //  print_r($container->plaintext.'<br>');
        }
       
        return $items;
    }


?>


То, что Вы нарыли, - код парсера страниц товаров одного конкретного сайта.  Извлекает и записывает названия и описания товаров. Картинками тут и не пахнет.

А вместо такого вопроса лучше  взяли бы, запустили нарытое в работу и посмотрели, что выйдет.


Если бы я ещё знал, как это чудо запускать наверное не задавал бы тупых вопросов.
И вообще тема про то, что может есть у кого нормальный парсер?


Запускать очень просто: записать на сервер и вызвать в браузере.
И в Инете можно было б нарыть про то, как запускать...

Вряд ли найдете "нормальный парсер".  Все сайты индивидуальны, и для парсинга каждого отдельно надо свой парсер писать. Приведенный Вами код - только заготовка для некоторого облегчения этой работы. 

А если б можно было сделать "нормальный парсер", давно бы уже сделали,  и народ бы пользовался без проблем. 


Дак для этого я и выложил код. Может кому то пригодится и возникнет идея сделать что то стоящее.
Так же прошу заметить, что я просил подсказать может программа есть какая?

Есть ещё один извратский вариант...поставить на другой домен к примеру Wordpress и парсить товар с помощью WP Robot, потом перенося все это дело к себе в магазин  :P


Источник



Copyright ShopOS