Можно ли собрать данные с страниц с ответом 404 или др. ошибок?

Тема в разделе "Решение различных задач по парсингу", создана пользователем drvoodoo, 16 авг 2017.

  1. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Суть проблемы такова...
    Есть страницы которые содержать полезную для меня информацию но дают ответ 404. Соответственно парсер либо пропускает такую страницу либо останавливает парсер (зависит от настроек).
    Можно ли это обойти?
     

    Вложения:

    • test.cdp
      Размер файла:
      131,6 КБ
      Просмотров:
      1
  2. Root

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

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

    2017-08-16_18-52-22.png
     
  3. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    А что туда можно прописать? Где об этом можно прочесть?
    Сейчас там прописано [RELOADDOCUMENT][WAITFORME] Это для отлова капчи.
     
  4. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Любые макросы шаблона вывода, какие вам нужны. Они сработают, если документ не загрузится.
     
  5. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Возможно я неправильно объяснил проблематику.

    К примеру есть страницы:
    Ссылки недоступны для гостей
    Ссылки недоступны для гостей
    Ссылки недоступны для гостей
    Ссылки недоступны для гостей
    Ссылки недоступны для гостей
    и тд

    у них ответ сервера 404, но они содержат полезную информацию заключенную в <h1>
    Так как ответ сервера 404, парсер пропускает эту страницу. Выдаёт ("Программе не удалось загрузить WEB-страницу (HTTP/1.1 404 Not Found)" либо "Программе не удалось загрузить WEB-страницу (HTTP/1.1 429 Too Many Requests)" но при этом полезный контент на эти страницы выводиться)
    429.jpg

    Вопрос! Как научить парсер игнорировать ответ сервера и всё равно собирать с этой страницы данные?
     
    Последнее редактирование: 17 авг 2017
  6. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Буду разбираться.
     
    drvoodoo нравится это.
  7. Root

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

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

    Вложения:

    • prom_ua.cdp
      Размер файла:
      37 КБ
      Просмотров:
      9
    drvoodoo нравится это.
  8. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    В центре обновления пока ещё старая версия (Content Downloader X1 версии 11.1.0000230 (20.07.2017))
     
  9. Root

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

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

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    По результатам отработки предложных вами макросов, грузиться вся страница целиком. Возможно я не понял вашего намёка. Если несложно изложите хотя бы теорию что происходит тут:
    <GETMORECONTENT><URL="[SELF][WBAPPMODE]"><START=""><STARTCOUNT="0"><END=""><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    И в какую сторону дальше капать?
    Спасибо заранее.
     
    Последнее редактирование: 21 авг 2017
  11. Root

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

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

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Огромное спасибо за помощь, вот теперь сама идея понятна. Ещё раз спасибо.
     
    Root нравится это.
  13. Root

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

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

    2017-08-22_11-25-49.png

    И в идеале сделать это Ссылки недоступны для гостей
     
    dervish и drvoodoo нравится это.
  14. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Появился дополнительный вопрос.
    Сайт при длительном парсинье выдаёт разного рода ответы сервера 404, 429 и т.д. но при этом какой-то промежуток времени выдаёт полезный контент, в этой ситуации срабатывает условие "если документ не загрузился" (ctrl+6) мы продолжаем сбор полезных данных средствами макроса
    <GETMORECONTENT><URL="[SELF][WBAPPMODE]"><START="<h1{skip}>"><STARTCOUNT="0"><END="</h1>"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    но спустя какоето время ресурс выкидывает капчу.

    Как можно проверить страницу на содержание капчи в случае если страница не загрузилась по причите ответа сервера 404, 429 и тд (срабатывает условие "если документ не загрузился" (ctrl+6) ).
    Какую конструкцию макросов можете порекомендовать использовать для нахождения капчи и остановки процесса в подобной ситуации?
     
    Последнее редактирование: 26 авг 2017
  15. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    [CHECKENTRY] Ссылки недоступны для гостей

    2017-08-27_17-28-20.png
     
  16. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    В условие "если документ не загрузился" (ctrl+6) [CHECKENTRY] не работает в связке с <GETMORECONTENT>
    1. Страница не загрузилась, сработал ctrl+6
    2. <GETMORECONTENT> получает контент и вырезает уже нужный материал

    как применить [CHECKENTRY] в связке <GETMORECONTENT> ?
     
  17. Root

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

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

    2017-08-27_20-32-01.png
     
    drvoodoo нравится это.
  18. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    Не подумайте что ради забавы. В CD столько всего, элементарно запутаться и пойти по ложному пути.
    Спасибо за подсказку, буду дальше разбираться.
     
    Последнее редактирование: 27 авг 2017
    Root нравится это.
  19. drvoodoo

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

    Регистрация:
    30 дек 2016
    Сообщения:
    69
    похоже я нашел глючёк в работе <GETMORECONTENT> в связке [CHECKENTRY2]
    в документации к <GETMORECONTENT> сказано:
    — Если макрос GETMORECONTENT вызывается несколько раз ПОДРЯД к одному и тому же адресу, то произойдет один запрос (для остальных будет загрузка кода WEB-документа из кеша);
    и правда в случае с использованием макроса [CHECKENTRY] всё так и происходит, но как только используем [CHECKENTRY2] GETMORECONTENT обращается к странице несколько раз.

    [CHECKENTRY2(recaptcha)]<GETMORECONTENT><URL="[SELF][WBAPPMODE(C:\content\prom\optimizing.wbapp)]"><START=""><STARTCOUNT="0"><END=""><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>[THENTEXT][WAITFORME][RELOADDOCUMENT][ELSETEXT]<GETMORECONTENT><URL="[SELF][WBAPPMODE(C:\content\prom\optimizing.wbapp)]"><START="<h1{skip}>"><STARTCOUNT="0"><END=" в Украине</h1>"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>[/CHECKENTRY2]

    [DOCNAME]prom-keys-[CD_DATE_YY][CD_DATE_MM][CD_DATE_DD].csv[/DOCNAME]

    ps Вся конструкция работает в условие "если документ не загрузился" (ctrl+6)
     

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