Jump to content

Recommended Posts

Добрый день, пытаюсь сделать парсер товаров. Вытягиваю из нужных мне тегов данные товара и записываю в бд. Возникла проблема с записью в БД - добавляется только одно поле. 

foreach ($res as $elkis) // в $res хранятся спарсенные данные
            {
            //echo "<br/>".$elkis['product_id']."-".$elkis['descript']."<br/>";
			$x = $elkis['product_id'];
            $name = $elkis['name'];
            $prices = $elkis['price'];
            //$descript = $elkis['descript'];
			$query = "INSERT INTO product (`model`, `price`, `status`, `quantity` ) VALUES ('$name', '$prices', '1', '99')";
            }
            
			mysql_query($query) or die(mysql_error());
			mysql_close();

Парсинг происходит с помощью Simple html dom. $elkis['product_id'] и $elkis['name'] это вытянутые данные. Через echo проверял - выводятся все товары как надо. Что я упускаю?

 

Share this post


Link to post
Share on other sites

Нашел ошибку: mysql_query($query) or die(mysql_error()); был за пределами цикла. 
Но возник неприятный баг - не добавляются русские символы. БД и файл скрипта в utf-8.
UPD: попробовал просто записать русские символы через переменную и просто в поле, все норм:

function SaveToDB($res, $sQuery)
		{
			/* Переменные для соединения с базой данных */
			$hostname = "localhost";
			$username = "root";
			$password = "12345678";
			$dbName = "parsing";
			
			/* создать соединение */
			mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
			if (!mysql_select_db($dbName))
			{
				if (mysql_errno() == 1049)
				{		
					mysql_query("CREATE DATABASE ".$dbName." CHARACTER SET utf8 COLLATE utf8_general_ci;") or die(mysql_error());
					mysql_select_db($dbName);
				}
			}

			
			mysql_query("CREATE TABLE IF NOT EXISTS `parsinginfo` (
			`id` int(11) NOT NULL AUTO_INCREMENT,
			`textquery` varchar(255) NOT NULL,
			`data` varchar(255) NOT NULL,
			`date` varchar(255) NOT NULL,
			PRIMARY KEY (`id`))");
			
	    mysql_query("SET NAMES 'utf8'");
            foreach ($res as $elkis) 
            {
            $x = $elkis['product_id'];
            $name = $elkis['name'];
            $prices = $elkis['price'];
            $descript = $elkis['descript'];
            $data = "Мама мыла раму";   //эта запись норм добавляется в БД
            //echo "".$elkis['product_id']."-<b>".$elkis['name']."</b>-".$elkis['descript']."<br>";
			$query = "INSERT INTO parsinginfo (`title`, `product_id`, `price`, `description`, `data`, `date`) VALUES ('Мама', '$x', '$prices', '$descript', '$data', NOW())";
            mysql_query($query) or die(mysql_error());
            }
		}
Edited by xboltikxx

Share this post


Link to post
Share on other sites

А в базу вносить значения по $x = $elkis['product_id']; кто будет ?

попробуйте сделать по типу:

 

$query = "INSERT INTO product (`product_id`, `model`, `price`, `status`, `quantity` ) VALUES ('$x', '$name', '$prices', '1', '99')";

  • +1 1

Share this post


Link to post
Share on other sites

Прошу прощения, неправильно вставил код, исправил выше.

 

 

Еще, если убрать mysql_query("SET NAMES 'utf8'");   то добавляются "кракозябры" . Вопрос остается открытым про кодировку.

 

UPD:

$descript = iconv("windows-1251", "utf-8", $descript); 

Это помогло. Если кто знает более элегантное решение, то буду очень благодарен.

Edited by xboltikxx

Share this post


Link to post
Share on other sites

ждем падения магазина...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Rassol2
      1 600.00 руб
      Скачать/Купить дополнение


      SimplePars - Универсальный парсер для ИМ
      Модуль SimplePars предназначен для парсинга и наполнения интернет магазина. 
       
      Идея модуля заключается в том что бы вы могли заварить чашечку кофе и наблюдать как ваш магазин наполняется товарами.
      Ведь намного приятнее наблюдать за строкой загрузки товара, чем заполнять каждую позицию вручную

       
      Возможности модуля SimplePars
      Основные задачи которые решает модуль это парсинг данных с сайта и последующее заполнение интернет магазина.
      Вы можете как парсить напрямую в интернет магазин, так и парсить в CSV файл для дальнейшей обработки. 
      Так же реализовано обновления товаров при помощи парсинга сайтов доноров. 
       
      В двух словах не описать что умеет делать модуль, по этому обозначу только основные моменты.

      1. Сбор ссылок на товары. Или на любые другие страницы сайта. Эти ссылки можно записать в таблицу csv. Либо использовать для наполнения вашего интернет магазина.
      2. Парсинг данных с сайта. Есть возможность парсить напрямую в интернет магазин, или же в файл csv. 
      3. Формировать прайс csv с данными что вы парсите. Так же прайсы можно формировать в готовом формате для загрузки через АОП. Или любого другого загрузчика прайс листов. 
      4. Заполнять интернет магазин новыми товарами.
      5. Обновлять товары, получать цены остатки с сайта донора.
       
      Вы можете указать любое количество границ парсинга, на любые данные что есть в html коде сайта донора.
      SimplePars это универсальный инструмент который поможет вам наполнить ваш интернет магазин.
      Обратите внимание что вы можете настроить парсинг на любые данные, и необязательно они должны быть совместимы с opencart. Вы можете парить статьи, отзывы, блоги.
       
      При загрузке или обновлении товара, модуль поддерживает работу с :
      1) Кодом товара 
      2) Артикулом 
      3) Названием
      4) Ценой
      5) Количеством товара на складе
      6) Производителем
      7) Описанием
      8) Категориями
      9) Изображениями
      10) Атрибутами.

      Так же поддерживается: Создание новых категорий, атрибутов, загрузка изображения по ссылке, создание производителей.
      Формировать URL товаров и заполнять SEO данные товара, категорий, производителей.
       
      В данном модуле есть возможность парсить все данные в CSV файл
      Можно формировать прайс листы для загрузки их через популярные дополнения. 
      Такие как:
      Автоматическая обработка прайс листов. 
      CSV Price Pro import/export
       
      И это малая часть тех задач которые может выполнить данный модуль. Модуль разрабатывается как универсальный парсер у него нету четких задач, у него есть только набор инструментов.
      А что вы построите имея эти инструменты уже зависит только от вас. 
       
      Инструкция к модулю доступна по ссылке (На данный момент разрабатывается обновленная версия инструкции)
      https://simplepars.top/index.php?page=doc
       
      Обзор возможностей модуля
       
      Инструкция по установке.
      Установка SimplePars
      1. Зайдите в директорию вашей версии модуля и скопируйте все в корень сайта с заменой.
      2. Введите в строке браузера ваш_сайт/inst.php и нажмите Enter.
      3. Далее перейдите в раздел Система->Пользователи->Группы пользователей->Администратор нажмите выделить все в двух разделах:
      Разрешить просмотр
      Разрешить редактировать
      Затем нажмите сохранить.
      4. Зайдите в "Модификаторы" или "Менеджер дополнений", и нажмите Обновить. 
      5. После этого удалите в корне сайта файл inst.php
      Все модуль установлен.
      В разделе Каталог под пунктом Производители появится пункт SimplePars это вход в модуль. 
       
      Инструкция по обновлению
      1. Загрузить содержимое директории c названием вашей версии  в корень сайта.
      2. Выполнить ваш_сайт/inst.php
      3. Удалить с корня сайта файл inst.php
      Добавил Rassol2 Добавлено 28.10.2018 Категория Парсеры Системные требования PHP >= 5.6 Сайт разработчика https://simplepars.top/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By Rassol2
      Модуль SimplePars предназначен для парсинга и наполнения интернет магазина. 
       
      Идея модуля заключается в том что бы вы могли заварить чашечку кофе и наблюдать как ваш магазин наполняется товарами.
      Ведь намного приятнее наблюдать за строкой загрузки товара, чем заполнять каждую позицию вручную

       
      Возможности модуля SimplePars
      Основные задачи которые решает модуль это парсинг данных с сайта и последующее заполнение интернет магазина.
      Вы можете как парсить напрямую в интернет магазин, так и парсить в CSV файл для дальнейшей обработки. 
      Так же реализовано обновления товаров при помощи парсинга сайтов доноров. 
       
      В двух словах не описать что умеет делать модуль, по этому обозначу только основные моменты.

      1. Сбор ссылок на товары. Или на любые другие страницы сайта. Эти ссылки можно записать в таблицу csv. Либо использовать для наполнения вашего интернет магазина.
      2. Парсинг данных с сайта. Есть возможность парсить напрямую в интернет магазин, или же в файл csv. 
      3. Формировать прайс csv с данными что вы парсите. Так же прайсы можно формировать в готовом формате для загрузки через АОП. Или любого другого загрузчика прайс листов. 
      4. Заполнять интернет магазин новыми товарами.
      5. Обновлять товары, получать цены остатки с сайта донора.
       
      Вы можете указать любое количество границ парсинга, на любые данные что есть в html коде сайта донора.
      SimplePars это универсальный инструмент который поможет вам наполнить ваш интернет магазин.
      Обратите внимание что вы можете настроить парсинг на любые данные, и необязательно они должны быть совместимы с opencart. Вы можете парить статьи, отзывы, блоги.
       
      При загрузке или обновлении товара, модуль поддерживает работу с :
      1) Кодом товара 
      2) Артикулом 
      3) Названием
      4) Ценой
      5) Количеством товара на складе
      6) Производителем
      7) Описанием
      8) Категориями
      9) Изображениями
      10) Атрибутами.

      Так же поддерживается: Создание новых категорий, атрибутов, загрузка изображения по ссылке, создание производителей.
      Формировать URL товаров и заполнять SEO данные товара, категорий, производителей.
       
      В данном модуле есть возможность парсить все данные в CSV файл
      Можно формировать прайс листы для загрузки их через популярные дополнения. 
      Такие как:
      Автоматическая обработка прайс листов. 
      CSV Price Pro import/export
       
      И это малая часть тех задач которые может выполнить данный модуль. Модуль разрабатывается как универсальный парсер у него нету четких задач, у него есть только набор инструментов.
      А что вы построите имея эти инструменты уже зависит только от вас. 
       
      Инструкция к модулю доступна по ссылке (На данный момент разрабатывается обновленная версия инструкции)
      https://simplepars.top/index.php?page=doc
       
      Обзор возможностей модуля
       
      Инструкция по установке.
      Установка SimplePars
      1. Зайдите в директорию вашей версии модуля и скопируйте все в корень сайта с заменой.
      2. Введите в строке браузера ваш_сайт/inst.php и нажмите Enter.
      3. Далее перейдите в раздел Система->Пользователи->Группы пользователей->Администратор нажмите выделить все в двух разделах:
      Разрешить просмотр
      Разрешить редактировать
      Затем нажмите сохранить.
      4. Зайдите в "Модификаторы" или "Менеджер дополнений", и нажмите Обновить. 
      5. После этого удалите в корне сайта файл inst.php
      Все модуль установлен.
      В разделе Каталог под пунктом Производители появится пункт SimplePars это вход в модуль. 
       
      Инструкция по обновлению
      1. Загрузить содержимое директории c названием вашей версии  в корень сайта.
      2. Выполнить ваш_сайт/inst.php
      3. Удалить с корня сайта файл inst.php
    • By winner0377
      Нужен парсер для парсинга сайта донора, чтобы была возможность в парсере указать ссылку на категорию с товарами на сайте донора, после чего эти товары должны парситься на мой сайт в необходимую на моем сайте категорию.
      Также необходимо автообновление имеющих товаров по цене и наличию в автоматическом режиме через Cron.
       
      Просьба предложения писать в л.с.
    • By winner0377
      Работал с ParseMX на ocstore 1.5 сейчас перешёл на ocstore 2.3 и ParseMX не поддерживается теперь.
       
      Есть сайты доноры - с них был парсинг цены, названия, описания, харакетристик и т.д.
      Где были водные знаки, был парсинг без фото, фото потом добавлялось вручную.
       
      Один из сайтов находится на домене prom.ua, который затрудняет парсинг но обход нужно сделать. 
       
      С ocstore 1.5 товары и вся база сайта перенеслась на ocstore 2.3. с теми же id товаров, ID товаров нужно будет оставить все старые, чтобы они остались как были до этого. 
       
      Прошу варианты с ценой и временем работы писать в л.с. 
       
       
    • By feedback25
      Здравствуйте, есть свежий натянутый сайт на Opencart, на сайте планируется залить около 10-15 млн товаров, нужно для него написать парсер, который пока что будет спарсить с трех ресурсов, сперва сделаем первый.

      По итогу парсер должен забирать информацию с ресурсов и заливать в саму БД, или в CMS, т.е. не просто получить файл с товарами, а именно с настройкой заливки + разные тонкости, более детально описано в ТЗ, также парсер должен будет иметь возможность обновлять товары на сайте без вмешательства контент-менеджера.

      На первом ресурсе около 9 млн товаров, часть полей можно выкачать за 4-5 часа из общей таблицы с товарами, но кроме одной характиристики, которая находится только в каждой отдельной карточки, и тут самый важный момент что нужно сделать многопоточный парсер с прокси, чтобы не выкачивать это все 3 месяца(так выходит если качать один товар в секунду), а быстрее насколько реально.
       
      При ответе, напишите какой у Вас опыт в этой сфере, спасибо.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.