Категории
[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
Источник
|