Пропуск ячеек при парсинге

Тема в разделе "Решение проблем с использованием программы", создана пользователем freman, 15 июл 2015.

  1. freman

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

    Регистрация:
    8 июл 2015
    Сообщения:
    74
    Здравствуйте уважаемые разработчики и форумчане, не могу понять может я что не так делаю,но при парсинге некоторые границы парсинга к примеру price не отображаются в ячейке. Проверял на всех проблемных границах тэги все совпадают и номер тэга везде 0,более того все границы на этих участках при проверке ПРИСУТСТВУЮТ!!! но не отображаются в ячейках .И не только price но и title и другие т.е. часть отображается а часть нет.Неужели это только у меня так? Проект прикладываю.Заранее спасибо.
     

    Вложения:

    • 15.07.2015.cdp
      Размер файла:
      30,5 КБ
      Просмотров:
      8
  2. Root

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

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

    Заменить конец парсинга цены с </font> {br} на </font> и так далее...

    С уважением к вам, Сергей.
     
  3. freman

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

    Регистрация:
    8 июл 2015
    Сообщения:
    74
    Сергей спасибо большое с ценами помогло!!! тут еще такая ситуация что в границе парсинга instok меняются значения и соответственно программа не выводит значение в ячейку тут как быть?
     
  4. freman

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

    Регистрация:
    8 июл 2015
    Сообщения:
    74
    Разобрался извиняюсь за лишнее беспокойство Skipe же в помощь есть!
     
  5. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    У меня тоже получились пропуски, но из-за непрогрузки GETMORECONTENT. Вопрос. А пауза между запросами в главном окне и в настройках GETMORECONTENT - это сколько программа ждет, прежде чем пытается считать код? Т.е. если ставить паузы больше, то больше шанс, что страница прогрузится? И количество попыток - это количество попыток при неудаче или программа по любому сделает это указанное кол-во попыток?
     
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Вот количество попыток и пауза между запросами для GETMORECONTENT где выставляется

    2019-05-18_14-24-57.png

    Последний вопрос откровенно странный, я воздержусь от ответа на него.
     
  7. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Нет, это сколько программа ждет после получения ответа от предыдущего запроса и перед выполнением следующего. То, что вы имеете ввиду - называется Conntect TimeOut и Read TimeOut.
     
  8. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Где настройки GETMORECONTENT я знаю и наколдовал с ними, чтобы результат был. А то сайт попался эстонский.

    Вопрос задам по-другому. Какой алгоритм при выставлении числа попыток? Программа делает 1 попытку, проверяет, что код загружен, парсит и переходит к следующему этапу, а если кода нет, то делает еще попытку загрузить страницу? Или просто делается подряд указанное число попыток через указанную паузу и только потом проверяется наличие кода?
     
  9. Root

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

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

    Сам запрос выполняется, пока сайт на него не ответит и пауза между запросами на него не влияет.
     
  10. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Все таки не выходит чаша у Данилы-мастера. Игрался с таймингами, но дырки все равно есть. Там запросов очень много. Они все в повторках. Проект прилагаю. Можно как-то повторно загрузить пропущенный <GETMORECONTENT> без повторной загрузки всего цикла? Или тайминги выставить, чтоб они сработали? Главное в логах этой инфы нет.
     

    Вложения:

  11. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    На количество попыток загрузки GETMORECONTENT влияет опция указанная на моем скриншоте выше. Если не загружает, то увеличьте количество попыток загрузки.
     
  12. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Все логи загрузки GETMORECONTENT есть в окне предпросмотра результатов парсинга. На вашем проекте запустил предпросмотр, проблем с загрузкой нет.
     
  13. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Да вот в том то и дело, что на предпросмотре все выглядит просто зашибись, а во время парсига получаются дырки. Попробуйте сделать прогон всех ссылок и сами увидите.
    Я пробовал менять тайминги и количество потоков. Даже на 1м потоке все равно получаются дырки. Как это победить?
    При обычном парсинге я по логам просто повторно паршу не загруженные страницы, а тут логов у GETMORECONTENT, я так понял, просто нет. Или я не прав?
     
  14. Root

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

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

    Дело с ним обстоит так.

    Когда к нему поступает определенное количество запросов с одного IP в единицу времени (например, за 5 минут) он перестает отвечать на запросы с этого IP.

    Либо его парсить в 1 поток с большой задержкой (что долго), либо использовать список хороших прокси.

    Вариант с прокси предпочтительнее.
     
  15. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Также не забывать выставить достаточное количество попыток загрузки (так как сайт работает медленно и часть запросов к нему прекращаются по тайм ауту).

    2020-02-12_14-42-44.png
     
  16. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Я обычно использую быстрые паблик прокси, но даже с ними получились дырки. Уже запустил 2й вариант. Правда попыток указал 10 и тайминг в 4 сек.
    А в 1 поток тоже пробовал. CD писал готовность через 2 недели. o_O
    В общем, спасибо за точный диагноз. Буду пытать его дальше. Хотя есть идея как пропарсить эти дырки по отдельности, но очень уж не охота возиться. Еще раз спасибо!
     
  17. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Кажется, удалось выявить причину пропусков.

    Как допарсится, отпишусь тут.
     
  18. Reset

    Reset Active Member Пользователи

    Регистрация:
    16 дек 2013
    Сообщения:
    114
    Поставьте много потоков и много попыток загрузки, я ставил 50 или больше и 1000 попыток загрузки.
    Ну и быстрых паблик прокси много не бывает.
     
  19. Root

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

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

    По какой-то причине, после частых обращений этот сайт начинает менять верстку страниц.

    Перезадал границы парсинга (чтобы они подходили к двум видам верстки) и теперь вроде все ок (проект приложил).

    Файл с измененной версткой тоже приложил.

    Не понимаю, с чем связаны такие алгоритмы этого сайта. Если хотите, проверьте, правильные ли этот сайт отдает характеристики товаров при смене верстки.
     

    Вложения:

    • batterika_ru_3.cdp
      Размер файла:
      113,4 КБ
      Просмотров:
      1
    • HTML.txt
      Размер файла:
      56,9 КБ
      Просмотров:
      1
  20. Serheo

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

    Регистрация:
    13 окт 2018
    Сообщения:
    251
    Город:
    Москва
    Блин, я вроде не тупой и знаю толк в извращениях, но как Вы до этого додумались? И как Вы получили эту новую верстку? Там каждая колонка берется отдельным GETMORECONTENT и "дырка" распространяется на них всех и править надо всё. За HTML спасибо! Тут я его уже сам поковыряю. Но как его самому получить? На предпросмотре его же не видно.
     

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