сбор ссылок в прайс-лист товаров

Тема в разделе "Решение различных задач по парсингу", создана пользователем itser, 17 июн 2014.

  1. itser

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

    Регистрация:
    21 май 2014
    Сообщения:
    41
    Итак, общая задача: собрать характеристики товаров с разных сайтов согласно прайс-листу. Всех товаров на одном сайте нет, поэтому начинаем что-то придумывать;) Как результат - хочу получить прайс-лист с ссылкой донора возле каждого товара.
    Варианты решений:
    1. Сканером сайтов насобирал ссылки со всех доноров, в фильтр ключевых слов загнал список наименований, спарсил и попытался все это склеить редактором csv. результаты не очень.. наименования товаров зачастую очень похожи и результаты очень не точные..
    2. через форму поиска на сайтах. Подобрал коллекцию доноров с формами поиска, в {key} загнал наименования товаров и сгенерировал ссылки. Тестирование первого донора прошло успешно, собрано приблизительно 70% товаров как надо. Задумался вот над чем: можно ли привязать разные границы парсинга к разным сайтам и в шаблоне вывода создать условие типа "если не найдена граница 1 с первого сайта, искать границу 2 со второго сайта и т.д".
    Буду благодарен любым советам как насчет общей задачи, так и в частности по моим вариантам.
     
    Последнее редактирование: 17 июн 2014
  2. Root

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

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

    Например, на первом сайте задали границу заголовка как <CD_GRAN_1!>, на втором сайте задали границу для заголовка как <CD_GRAN_2!>. Открываем дополнительные настройки границ парсинга (ctrl+4) и прописываем во вкладке, соответствующей границе парсинга 1, в поле "если граница парсинга окажется пустой..." следующее:
    А в шаблон вывода вставляем только <CD_GRAN_1!>. В этом случае, если вы парсите второй сайт и там граница парсинга заголовка <CD_GRAN_1!> не найдена, Content Downloader заместо нее выведет <CD_GRAN_2!>, которая прописана в дополнительных настройках...
     
  3. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    А как парсить две страницы одновременно?
    Если 1 и 2 сайт просто в списке страниц очереди, то после 1 всё найденное обнулится. Или я что то не так понял?
     
  4. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    И тут не решена задача с ссылкой на сайт с которого взяли, ведь их типа 2...
     
  5. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Ничего не обнулится, а добавится к общему результату...
    Так что не переживайте =)
     
  6. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Немного понял, но ещё не пробовал
    То есть прогнали 1 ссылку, получили данные. Прогнали вторую ссылку с использованием других границ, и уже на ней делаем вывод данных используя результаты с обоих ссылок?
     
  7. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Чё то сижу и думаю, что то тут не так. Наверно мы недопонимаем друг друга. Как про Фому и Ерёму ). Ведь все заданные границы ищутся на все документах (как я представляю). То есть при переходе на другую ссылку программа проработает все заданные границы, и если какой то не найдет то вернёт в неё пустой результат. Соответственно сверять данные с двух ссылок не получится. Если что то не так понимаю, поясните пожалуйста новичку.
     
  8. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Задайте границы парсинга для одного сайта и вставьте их в шаблон вывода. Задайте границы для другого сайта и вставьте их в шаблон вывода. Какие найдет, такие и выведет. В чем проблема - не пойму. Тут же одна логика и все... Просто подумать, попробовать, подумать, попробовать...
     
  9. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Проблема в том что парсится 1 сайт за раз. Как подключить второй сайт? Чтобы инфа с обоих была одновременно.
     
  10. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Создайте по файлу проекта для каждого сайта и сохраните их на диск (меню - файл - сохранить проект).
    Найдите кнопку "планировщик" на панели инструментов и добавьте туда эти два файла.
    Сайты спарсятся друг за другом.
     
  11. itser

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

    Регистрация:
    21 май 2014
    Сообщения:
    41
    Решил через <GETMORECONTENT> с [PARAM].
    Пример шаблона вывода:
    [PARAM][CSVCS][IFNIL]<CD_GRAN_2!>[ELSE]<GETMORECONTENT><URL="http://.../?keyword=[param]&search=true&view=category"><START="detail" title=""><STARTCOUNT="0"><END="">"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>[/IFNIL]
    В [param] записано ключевое слово {key}. То есть, если не найдена первая граница, в ссылку <GETMORECONTENT> вставляется ключевое слово и ищется граница, указанная в макросе. И так далее.. можно продолжать условия.
     
    Последнее редактирование: 20 июн 2014

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