Как удалить дубли при парсинге?

Тема в разделе "Разное", создана пользователем abuse16, 13 мар 2012.

  1. abuse16

    abuse16 New Member Пользователи

    Регистрация:
    13 мар 2012
    Сообщения:
    1
    Здравствуйте,
    столкнулся с такой проблемой...

    Опишу ситуацию на примере Ссылки недоступны для гостей обучающего видео.
    Как быть если на странице будет несколько одинаковых телефонных номеров? А задача стоит что бы на выдаче парсинга повторений не было вообще. Можно ли каким то образом в CD удалить/игнорировать дубли при парсинге?

    Сорри если путано написал... )
     
  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Парсите в 1 документ и потом все копируете и вставляете F8 в CD, и правой кнопкой мыши вызываете окно в списке где выбираете "Удалить дубли"
     
  3. Valiks

    Valiks New Member Супер Модератор

    Регистрация:
    18 янв 2012
    Сообщения:
    554
    Адрес:
    Всё время в скэйпе
    Тут kagorec, объяснил то, что касается удаления дублей ссылок. Но вопрос был о другом. При парсинге номеров телефонов, действительно появляются множество дублей. Чтобы их отсеять, надо парсить в CSV-файл, затем воспользоваться редактором CSV-файлов, встроенной в программу. Там есть опция удаления дублей. Всё происходит за считанные секунды. Описание работы программы Ссылки недоступны для гостей.

    Второй вариант, парсить также, а удалять дубли через Exele. Но, опыт показывает что встренный редактор СD намного удобнее.
     
  4. mur

    mur New Member Пользователи

    Регистрация:
    5 июн 2014
    Сообщения:
    44
    нет ли макроса, который бы сравнивал артиклы товаров (список артиклов уже имеющихся товаров в txt или csv) и Если есть, То не записывать в строку csv
     
    Последнее редактирование: 23 июл 2014
  5. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    нет такого макроса нету. Это можно провернуть разве что при использовании PHP скрипта.
    Но на самом деле, нет ничего сложного чем в том, чтоб открыть ексель и нажать 1 копку для удаления дублей.
    Если у вас при запросе не грузятся десятки картинок, то поверьте, скорость обработки от этого не хромает.
     
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Есть опция исключения повторной загрузки ссылок при следующем парсинге - Ссылки недоступны для гостей
    Это вас устроит?
    Если нет - постараемся сделать другую функцию.
    С уважением к вам, Сергей.
     
  7. mur

    mur New Member Пользователи

    Регистрация:
    5 июн 2014
    Сообщения:
    44
    Сергей, спасибо Вам и Вашей команде за Ваш продукт!!! Просто круто.. легко решаются любые задачи!!! Отличный саппорт :muscle:

    Опцию исключения повторной загрузки ссылок я использую.

    Открыть excel и удалить дубли можно, но хочется же всегда автоматизировать процесс.

    Давайте другой пример жизненный приведу с номерами телефонов, как писал выше Valiks:

    Допустим мы хотим купить машину не у перекупщика.
    1) Мы сначала парсим только телефоны с авито в категории авто и собираем в один файл. Фильтруем телефоны оставляя ТОЛЬКО дубли (телефон встречается в файле более N раз (N = 3 или 4 раз, потому что наверное бывает НЕперекупы подают несколько объявлений)) - получаем Базу Телефонов Перекупщиков.
    2) Возвращаемся на авито и начинаем парсить новые свежие объявления с условием, что телефон не совпадает с телефоном из Базы Телефонов Перекупщиков
    3) При дальнейшем парсинге Если в новых объявлениях появляется телефон встречается больше N раз , то он автоматически попадает в Базу Телефонов Перекупщиков.

    То есть телефон сравниваем
    1) с Базой Перекупщиков, если НЕ совпадает - то добавляем объявление.
    2) если в новых объявлениях появляются дубли более N раз => телефон попадает в Базу Телефонов Перекупщиков

    в php не разбираюсь.
     
    Последнее редактирование: 23 июл 2014
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста. И вам спасибо на добром слове! Очень приятно!

    Реализовывать функционал для этой вашей задачи в программе, простите, не вижу смысла:
    - Очень узконаправленный
    - Далеко не простая реализация, вернее, трудоемкая

    Вашу задачу лучше реализовать с использованием PHP_SCRIPT + локальный сервер + MySQL (база данных). Смотрите этот пост системы помощи Ссылки недоступны для гостей

    Вы отправите скрипту номер телефона, он произведет с базой данных номеров нужные операции (на локальном сервере (без лишних запросов к интернет)) и вернет ответ.

    В шаблон вывода вставляем примерно такую вот конструкцию:
    Если "что должно быть в ответе скрипта" есть в "ответ скрипта", то документ парсится. Если нет, то пропускается.

    Согласен, что с PHP и MySQL нужно немного повозиться (может и не без помощи PHP-программистов), но это более рациональное и эффективное решение вашей задачи (+ неограниченные возможности, если потребуются другие проверки).

    Надеюсь на ваше понимание.

    С уважением к вам, Сергей.
     
  9. mur

    mur New Member Пользователи

    Регистрация:
    5 июн 2014
    Сообщения:
    44
    полностью согласен с Вами. Можете кого-то порекомендовать для реализации?
     
  10. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    К сожалению, у меня нет людей по MySQL+PHP, хотя должны были бы и быть...

    Но я вам рекомендую (если есть время и желание) самим вникнуть.

    Вот, смотрите:
    PHP:
    <?php 
    $db 
    mysql_connect("localhost""root"""); 
    mysql_select_db("new_base"); 
    mysql_query("SET NAMES utf8"); 
    mysql_query("INSERT INTO `temp`(`id`, `text`, `text2`) VALUES ('','$_POST[title]','$_POST[descr]')"); 
    // строка для проверки нашего скрипта 
    //mysql_query("INSERT INTO `temp`(`id`, `text`, `text2`) VALUES ('','111','222')"); 
    echo "Скрипт отработал"
    ?>
    Это и весь скрипт! Хотя тут всего 3 запроса (mysql_query).

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

    Если что я вам могу помочь в определенных моментах с MySQL-запросами, хотя сам их не знаю. Но когда делал пару запросов, смотрел примеры в Гугле и все было не так уж и сложно...

    Решайте сами...
     
  11. mur

    mur New Member Пользователи

    Регистрация:
    5 июн 2014
    Сообщения:
    44
    Спасибо! Попробую разобраться, если что напишу :bow:
     
  12. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Могу помочь, но только если не горит по времени. Стучите в скайп.
     
  13. mur

    mur New Member Пользователи

    Регистрация:
    5 июн 2014
    Сообщения:
    44
    задачу помог решить kagorec. Спасибо ему за это! :handshake:
     

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