Новичок
Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2012
Помог: 0 раз(а)
Народ, нужна помощь, внизу указана функция, она по условию должна прописывать в базу один раз информацию спарсенную а она циклически вводит несколько раз в базу. вроде в цикла нет в том месте где отправляю sql запрос.
PHP:
скопировать код в буфер обмена
function PARSER ( ) {
/* - Здесь мы будем вытасскивать с базы все товары и по очереди добавлять в новую таблицу, группируем - */
# $basa_sql_select_tovar = 'SELECT * FROM '
$art = '557445' ;
include './libs/simple_html_dom/simple_html_dom.php' ; # Подключаем библеотеку DOM - simple_dom_html
$html = new simple_html_dom( ) ;
$html -> load_file ( "http://merlion/" ) ; # парсим с сайта мерлиона
#$html = file_get_html('./files/parrrrrser.htm');
/*---------- Переменные которые работают с SIMPLE HTML DOM -- они подготавливают документ для марсинга ----------*/
$name = iconv ( 'windows-1251' , 'utf-8' , $html -> find ( 'h1' , 0
) -> plaintext ) ; # Название товара
$table = $html -> find ( 'table.text tbody' , 1) ; # таблица которую ьуду парсить
$tr = $table -> find ( 'tr' ) ; # тег tr где находиться нужная информация
static $cpu = '' ; # Процессор (core i3)
static $cpu_parent = '' ; # AMD vs INTEL
static $ram = '' ; # RAM
static $hdd = '' ; # HDD
static $video = '' ; # VIDEO GRAPHIC
static $diagonal = '' ; # Диагональ
static $os = '' ; # Операционная система
static $model_cpu = '' ; # Модель процессора ( 2600K == core i7)
static $model = '' ; # Модель Ноутбука
static $part_no = '' ; # Артикул производителя
static $brand = '' ; # Бренд производителя
static $seria = '' ; # Серия ноутбука. например ThinkPad
foreach ( $tr as $value ) { # В данном цикле перебираем все возможные описания товара
$info = iconv ( 'windows-1251' , 'utf-8' , $value -> first_child ( ) -> first_child ( ) == '' ?
$value -> first_child ( ) -> plaintext : $value -> first_child ( ) -> first_child ( ) -> plaintext ) ; $info_ = iconv ( 'windows-1251' , 'utf-8' , $value -> last_child ( ) -> plaintext ) ;
if ( $info == 'Ноутбуки Процессор Серия' ) {
$cpu = $info_ ;
} elseif ( $info == 'Ноутбуки Процессор Производитель' ) {
if ( $info_ == 'AMD' ) {
$cpu_parent = 'AMD' ;
} elseif ( $info_ == 'INTEL' ) {
$cpu_parent = 'INTEL' ;
}
} elseif ( $info == 'Ноутбуки Объем оперативной памяти' ) {
$ram = $info_ ;
} elseif ( $info == 'Жесткий диск' ) {
$hdd = $info_ ;
} elseif ( $info == 'Ноутбуки Модель Графического Контроллера' ) {
$video = $info_ ;
} elseif ( $info == 'Ноутбуки Размер экрана' ) {
$diagonal = $info_ ;
} elseif ( $info == 'Операционная система' ) {
$os = $info_ ;
} elseif ( $info == 'Ноутбуки Модель процессора' ) {
$model_cpu = $info_ ;
} elseif ( $info == 'Модель' ) {
$model = $info_ ;
} elseif ( $info == 'PatrNumber/Артикул Производителя' ) {
$part_no = $info_ ;
} elseif ( $info == 'Брэнд' ) {
$brand = $info_ ;
} elseif ( $info == 'Ноутбуки Серия' ) {
$seria = $info_ ;
}
}
$cpu = $cpu_parent . ' ' . $cpu ; # Добавляем производителя процессорв в начало
$sql_insert_tovar = "INSERT INTO `notebooks` (`No`, `type`, `brand`, `partNo`, `model`, `seria`, `name`, `cpu`, `ram`, `hdd`, `video`, `cpu_parent`, `os`, `model_cpu`, `price`, `avail`)
VALUES ( '$art ', 'Ноутбуки', '$brand ', '$part_no ', '$model ', '$seria ', '$name ', '$cpu ', '$ram ', '$hdd ', '$video ', '$cpu_parent ', '$os ', '$model_cpu ', '', '');" ;
DB_MYSQl( $sql_insert_tovar ) ;
/*************** И так перебор информации окончен, начнем перебирать изображения и сохранять в базу данных ************
*---------------------------------------------------------------------------------------------------------------------*/
/*
$img_html = $html->find('td.cat-r1');
$icount = 0;
$img_sql = array();
foreach ($img_html as $images) {
$img_link = $images->first_child()->href;
$thumbs = $images->first_child()->first_child()->src;
$name_img = $art.'_image_'.$icount.'.jpg'; # Название фотографий
copy($thumbs ,'./parser/thum/'.$name_img);
copy($img_link ,'./parser/img/'.$name_img);
$img_sql[$icount] = $name_img;
$icount++;
}
*/
}
-----Я мирный человек! Мне не нужна Война! Мне нужен МИР! желательно весь...