Помогите с парсингом ссылок

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

  1. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Перечитал справку по WBAPP , запустил это дополнение, настроил проект, прогрузились скрипты, появились фильтра с пунктами для выбора, задействовав которые удалось добраться до списка ссылок нужного вида Но учитывая структуру каталога, его вложенность, группировку товаров по доп. категориям и особенность работы фильтра, на мой взгляд, построение логики или цепочки кликов при помощи WBAPP не решают задачи сбора ссылок. Вернее решают, но никак не быстрее чем это сделать вручную. Во всяком случае если такие действия делаются для одного сайта. Еесли бы этот метод применялся на нескольких ресурсах - тогда телодвижения были бы оправданы. Потому как придется описать каждый клик по каждому пункту фильтра включая категории, подкатегории и еще кучу примочек прикрученных к фильтру. + потом еще парсить результаты этой обработки.
    Было бы здорово сгенерировать такие обработки записав события только раз или несколько раз для уверенности, но списка подкатегорий и "примочек" которые участвуют в фильтре в коде также не найти...

    Мне кажется гораздо быстрее прокликать каждую марку и модель собрать нужные ссылки а потом спарсить весь контент.

    Вижу три варианта развития событий:
    1. Собираю ссылки вручную - времяемкий и трудоемкий процесс - на крайний случай если никто не поможет или не додумаюсь сам.
    2. Использую неправильный подход при работе с WBAPP - знающие люди, поправьте меня пожалуйста.
    3. WBAPP не решает задачу и надо искать другие методы - в этом случае также выслушаю все варианты, и буду признателен за любые подсказки.
     
  2. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Обратите внимание на плагин:
    Link Gopher (firefox)
     
  3. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Спасибо за подсказку. Подключил Link Gopher, протестировал на 10 разных условиях.
    Хорошее приложение, ускоряет немного процесс, но не значительно. Приложение выводит список всех найденных ссылок на странице. Но выдача ссылок на эту же страницу с которой читает данные Link Gopher происходит только при клике на последнее условие отбора в фильтре. А пока не выставишь все условия отбора в фильтре - получить страницу ссылками нет возможности, последнее условие просто не выводится.

    Пример: что бы получить страницу со списком лобовых стекол на Ауди 80, 1990 г.в. нужно заполнить все поля фильтра (выбрать из списка):
    1. Марка: Ауди
    2. Модель: 80
    3. Тип кузова: седан
    4. Модельный ряд: 1987 - 19994
    5. Группу: лобовые стекла
    И если хотя бы одно условие не указано, то последний п 5 не выводится. А при клике как раз на этот пункт и посылается запрос на выдачу ссылок.

    Я так понимаю нужно откуда собрать (выявить, сгенерировать, определить) список айди вариантов этого последнего пункта, т.к. при пунктах фильтра всегда имеем ссылку вида Ссылки недоступны для гостей . Где переменная только одна, это последний каталог "119955". Ссылка всегда статична и меняется только последнее значение.

    Уважаемые форумчане как вы думаете, если сгенерировать список скажем от 1 до 500000 и пропарсить все.
    На выходе в теории получим при совпадения по айди - спарсеную инфу, а при несовпадении пустую строку.
    Основные вопросы:
    1. Нормальный ли это подход, и практикуется ли такое вообще?
    2. Не положу ли я сайт своим партнерам такими запросами?
    4. Не будет ли это выглядеть как DDoS?
    5. Нужно ли увеличивать (корректировать, настраивать) интервал между запросами в Content Downloader и на какое значение?
    6. Существует ли ограничение на количество добавленных к парсингу ссылок в Content Downloader?
     
  4. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    868
    Возможно поможет

    Меняя параметры запроса к фильтру сайта, можно получить требуемые данные
    Каждая модель авто имеет свой код. Коды авто доступны в коде страницы
    [​IMG]

    На скрине выбран марка авто - ACURA - и ему соответствует код - "54"

    Страка запроса к фильтру имеет вид
    Код:
    h t t p://autoboss.ua/private/catalog/?filter[271][0]=54
    
    Перейдя по такой ссылке, мы получим все доступные товары по данной марки авто - без углубления в фильтр.
    Также в коде страницы присутствуют нужные нам ссылки на карточки товаров
    [​IMG]
    Проведя обработку страницы, получим все 30 карточек товара
    [​IMG]
    Соответственно, меняя коды авто, можно собрать весь каталог товаров с сайта.
     
    Denkof и xLime нравится это.
  5. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
     
  6. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Очень похоже на решение всей задачи. Попробую, и отпишусь обязательно. Сейчас на сайте "На сервере проводятся технические работы. Приносим извинения за временные неудобства. Для получения консультации обращайтесь в отдел продаж."
    Переживаю как бы не навредить им своими действиям.
     
  7. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
    Для корректной работы Wbapp, необходимо иметь актуальную версию Interbnet Explorer v11
     
    Denkof нравится это.
  8. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Уже сделано.
     
    kagorec нравится это.
  9. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Доброй ночи. Результаты моих попыток спарсить ссылки по рекомендациям выше.
    В первую очередь выражаю благодарность за наводки господина inotoxic :). Это не просто наводки, а прям детальная инструкция как получить ссылки.
    Проделал согласно рекомендациям:
    1. Спарсил id марки.
    2. Сгенерировал ссылки для марок с применением фильтра по примеру.
    3. Подготовил проект для сбора ссылок на товары по спарсеным ссылкам.

    С методом сбора ссылок все казалось бы великолепно и всего на 5 минут делов, если бы не очередной ступор - после старта любого парсинга, через 5 сек получаю бан минут на 30-40.
    Сразу же заглянул в FAQ, прочел рекомендации про количество потоков, юзер-агентов и паузы.
    1. Установил кол-во потоков 1, паузу (сначала 10 сек, потом 60 сек, потом 10 мин, потом 20 мин) - каждый раз бан через разное время. После каждого бана просматриваю файл выдачи. В в файле выдачи каждый раз наблюдаю одинаковое количество данных. Отсюда предположил что бан вешают не за быстрые запросы, а за их кол-во, или если выходим за лимит кол-ва запросов в определенный временной промежуток, который предстоит выявить.
    2.Добавил разных юзер-агентов (для теста тех что были в самой програмее) - бан в том же ключе
    3. Сейчас сделал такое:
    3.1. Пауза между запросами динамическая от 20 до 30 минут
    3.2. Тот же список юзер-агентов для динамической смены
    3.3. Нарыл 10 юа прокси серверов и подключил их список.

    Наблюдаю. Сообщу о результатах.
     
    xLime нравится это.
  10. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Результат аналогиный при любых настройках - 8 ссылок сканируется (я так понимаю 8 запросов проходят с интервалом в 20 мин) и бан.
     
  11. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.433
    Адрес:
    Latvia
  12. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Увеличил еще тайминг паузы между запросами + влепил список юзерагентов вдвое больше чем список ссылок для парсинга.
    Запустил, пока наблюдаю. Тайминг паузы динамический от 10 до 15 минут. Это жестко пожирает время. Пока прошло 12 запросов, полет нормальный. Следующий шаг в случае неудачи пробую рекомендации kagorec.
    Подскажите еще знающие люди, пауза между запросами 20-30 минут - это нормальная практика или это значение обычно ограничивается секундами? Я к тому что, может не стоит и эксперементировать с такой длинной паузой а в первую очередь нужно правильно подобрать настройки (например список прокси, юзерагентов и т.д.) Какая пауза из практики считается нормальной? Спрашиваю что бы понимать на будущее. С баном столкнулся впервые. Ранее при парсинге запросы валились в 2-4 потока с интервалом в 10 мс и все залетало. А тут такой облом.
    Результат теста отпишу
     
  13. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    С длинной паузой в 15 мин- результат чуть лучше, 20 запросов прошло и бан.
    При чем бан весит уже часов 8. Ни скакого устройства и ни скакого айпи что удалось попробовать - доступа нет.
     
  14. Denkof

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

    Регистрация:
    26 июл 2018
    Сообщения:
    36
    Город:
    Сумы
    Рекомендации kagorec относительно Advor - результата не принесли.
    Все равно не удается загрузить код документа по ссылке с фильтром в котором указано одно условие.
    При запущеном Advor и насроеном прокси на него же - страница уже не загружается.
    Боюсь как бы не закрыли админы вообще доступ по такой ссылке. Но странно даже то, что сам корень каталога не грузится...
    Буду признателен за любые комментарии и рекомендации.
     

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