Как лучше не добавить дубли в базу данных или отследить еще в CD

Тема в разделе "Импорт CSV", создана пользователем Djahat, 20 мар 2017.

  1. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Всем привет.
    тренируюсь в такой теме, автоматическое добавление товара в базу данных, как только он появиться у поставщика на сайте. Товаров появляется на сайте поставщика много и часто, допустим 300 товаров в час.

    При добавлении товара в базу данных моего магазина, ссылка на источник-товара пишется в специальное поле этого товара, которое в базе данных числиться как уникальное, и при попытки добавления товара, с такой же ссылкой в базу данных, он естественно туда не записывается. Этим методом я сейчас и пользуюсь. Но есть неудобство, так как приходиться парсить много товаров, которые уже есть в базе данных, то есть работа мощностей в пустую. Хочу научиться избегать излишнего парсинга.

    Как можно отфильтровать ссылки, которые уже есть в моей базе данных, на этапе сразу перед тем как CD будет готов стартовать парсинг ссылок из списка ссылок.

    1) Допустим на первом этапе я выполнил сканирование ссылок или их сбор из sitemap.xml - они попали в список парсинга.

    2) Я могу сделать запрос php скриптом к своей базе данных и сформировать список ссылок, которые следует отфильтровать (вывести в файл на сервере или вернуть echo): НО КАК ИХ АВТОМАТИЧЕСКИ ПОМЕСТИТЬ В ФИЛЬТР ССЫЛОК ? и фильтрануть

    3) Потом бы я запустил проект парсинга как обычно.

    Кто готов подискутировать на эту тему, присоединяйтесь :)
     
    Последнее редактирование: 20 мар 2017
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.430
    Адрес:
    Latvia
    Загляните в Ctrl+t
     
    Djahat нравится это.
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    2017-03-20_20-25-55.png
     
    Djahat нравится это.
  4. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Круто . Спасибо. Опять мне "двойка" за знание интерфейса :)

    Жаль эта строка только файл с компьютера принимает, но не принимает файл лежащий на сервере и доступный по ссылке.

    Но я так понимаю это не проблема, надо только сделать PHP скрипт, который скачает файл с сервера на локальную машину, и запустить его перед парсингом в меню CNTRL+U

    У кого нибудь есть пример такого скрипта или на форумах PHP поискать ?
     
  5. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.430
    Адрес:
    Latvia
    Shift+ctrl+u


    [​IMG]
     
    Djahat нравится это.
  6. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Так это вроде список ссылок, которые попадут в список парсинга, и с них будет произведен сбор данных.
    А мне надо наоборот, разместить на сервере список ссылок, которые должны быть отфильтрованы. (а такой список можно только с локальной машины подгрузить, а с сервера нельзя). Думаю можно сделать ПХП скрипт, который возьмет данные с базы данных, поместит в файл (это я умею), и скачает этот файл в нужную папку на ПК (это я не умею :) пока что), и уже тогда можно указать этот файл в CD текущей версии.

    Или я туплю ?
     
    Последнее редактирование: 21 мар 2017
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Вас понял. Постараюсь расширить эту функцию на днях.
     
  8. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Спасибо, если так можно.
    В принципе я бы мог скриптами по пробовать решить, что бы Вас не напрягать. не думаю что много кому такое надо.
     
  9. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Сергей, добрый день, все таки PHP скриптом такое не решить.
    Если не сложно, как будет возможность, не могли бы Вы сделать, чтобы "Файл с загруженными ранее ссылками" из меню CNTRL+T , мог брать список ссылок к фильтрации не только с локальной машины, но и из файла с сервера по указываемому адресу Ссылки недоступны для гостей (можно только в режиме чтения)

    Предполагается такая автоматическая последовательность действий:
    1 или 2) Запустить сканер ссылок - получить все ссылки сайта в список парсинга.
    2 или 1) В меню CNTRL+U Выполнить php скрипт перед парсингом контента - сгенерировать файл с ссылками для ФИЛЬТРАЦИИ на сервере "Файл с загруженными ранее ссылками"
    3) В меню CNTRL+T - заранее, руками, будет вписана ссылка на сервер на "Файл с загруженными ранее ссылками". нужно чтобы эта функция ПЕРЕД самым парсингом, удалила из списка парсинга ссылки содержащиеся в этом файле Ссылки недоступны для гостей
    4) Приступить к парсингу

    Заранее очень благодарю.
     
  10. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Сделаю.
     
    Djahat нравится это.
  11. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Большое, спасибо.
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте!
    2017-03-24_19-08-41.png

    С уважением к вам, Сергей...
     
    kagorec и Djahat нравится это.
  13. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Вы лучший.
    Спасибище.
     
    Root нравится это.
  14. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Добрый день.
    Только я походу туплю, не пойму как пользоваться.

    1) Добавил в список SHIFT+CNTRL+U Загрузку URL адресов, с адреса
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    = ЗАГРУЗИЛИСЬ НОРМАЛЬНО.
    2) Добавил в меню CNTRL+T в поле файл, с ссылками которые надо удалить
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    (он открывается нормально в браузере)
    3) Запустил проект (он в приложении на всякий случай) - ссылки не удалились, хотя должны были удалиться все (1.php и 2.php - содержат одинаковые ссылки, все )

    При том, что при добавлении файла 2.php с локальной машины, все ссылки отфильтровываются нормально.

    Может что то надо еще нажать ?
     

    Вложения:

  15. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Была моя ошибка. Исправил.
     
    Djahat нравится это.
  16. Djahat

    Djahat Well-Known Member Пользователи

    Регистрация:
    14 янв 2013
    Сообщения:
    543
    Город:
    Мордор
    Сергей, Спасибище , ОГРОМНОЕ, протестировал, работает прям как надо!
     
    Root нравится это.
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста...
     
    Djahat нравится это.

Поделиться этой страницей