Принудительная загрузка страницы через GET



  • Использую такую структуру при загрузке страниц из базы и последующего парсинга.
    Прокси нестабильны, поэтому загрузка проходит не всегда и делаю загрузку данной ссылки снова через цикл.
    В итоге после окончания процесса в базе может появиться 70-90 запросов из 100, хотя они всегда идут на повторную загрузку.
    Как сделать 100 из 100? Подскажите :)

    BrowserAutomationStudio_ZVSpradObt.jpg





  • @tet-vivi
    Пример избавления от меток классный.
    Если не сложно объясните пожалуйста логику while в данном случае. Не могу понять как это должно работать?
    ps взяли ссылку, и она крутится в while пока что не произойдет ?



  • @kuzkuz
    while в данном случае будет выполняться вечно (так как условие всегда "истина"), а точнее до момента пока не дойдет до действия Break, а значит действие "Get-запрос" гарантированно выполнится



  • @GameBot Спасибо. Но Break и смутил, мне показалось цикл прервется после первого же гет запроса



  • @kuzkuz said in Принудительная загрузка страницы через GET:

    цикл прервется после первого же гет запроса

    так и есть. Но если при get-запросе будет ошибка, то действие Break не выполнится и скрипт перейдет к if WAS_ERROR, а потом цикл для While выполнится повторно



  • красиво )
    один вопрос - а чем метки не угодили?
    чисто зрительно с метками понятнее, хотя может я просто так привык.



  • @GameBot

    если при get-запросе будет ошибка, то действие Break не выполнится

    вот этот момент меня конечно удивляет. Для меня странно то что при ошибке последующие кубики (break в данном случае) за гет не выполняются



  • @kuzkuz said in Принудительная загрузка страницы через GET:

    вот этот момент меня конечно удивляет. Для меня странно то что при ошибке последующие кубики (break в данном случае) за гет не выполняются

    https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/try...catch

    Если любая инструкция в блоке try выбрасывает исключение, то управление сразу же переходит в блок catch. Если в блок try не было выброшено исключение, то блок catch не выполняется.

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


    @kuzkuz said in Принудительная загрузка страницы через GET:

    красиво )
    один вопрос - а чем метки не угодили?
    чисто зрительно с метками понятнее, хотя может я просто так привык.

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



  • @tet-vivi

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

    Да, спасибо. Как я понял так задумано разработчиком БАС, что после ошибки действия обернутые в игнорирование не выполняются

    при ошибке последующие кубики (break в данном случае) за гет не выполняются



  • @kuzkuz said in Принудительная загрузка страницы через GET:

    Да, спасибо. Как я понял так задумано разработчиком БАС, что после ошибки действия обернутые в игнорирование не выполняются

    Просто название действия не очень удачное, обычно это называется try - пытаться catch - поймать, то есть ошибки не игнорируются, а просто ловятся, не давая упасть процессу.



  • @UserTrue вот сижу теперь и думаю, как бы это знание с пользой применить в моем скрипте.
    весь что ли обернуть в игнорирование ошибки и в конце скрипта добавить
    if was error ...



  • @kuzkuz С тем уже успехом поток может сам перезапуститься после падения )



  • @UserTrue он сейчас и перезапускается... не вижу в принципе ничего в этом плохого

    да и можно в конструкцию внутрь if was_error после вывода ошибки добавить прервать скрипт....



  • @tet-vivi

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

    Как можно отследить? только глазками? )
    У меня довольно много меток в скриптах

    а то вдруг из за меток
    https://community.bablosoft.com/topic/12621/бас-чудит-произошла-ошибка-таймаут-во-время-выполнения-resetnocookies



  • @kuzkuz достаточно оборачивать только те блоки которые по логике могут упасть(выдать ошибку) и эти случаи нужно обработать

    или как в примере выше break выполняется только если в блоке до него не было ошибок.(но такое широко практиковать не стоит. было бы больше действий я бы реализовал по другому)



  • @UserTrue said in Принудительная загрузка страницы через GET:

    Просто название действия не очень удачное, обычно это называется try - пытаться catch - поймать, то есть ошибки не игнорируются, а просто ловятся, не давая упасть процессу.

    это что бы было понятно тем кто не знаком с програмированием



  • @tet-vivi said in Принудительная загрузка страницы через GET:

    это что бы было понятно тем кто не знаком с програмированием

    Я понимаю, но по факту очень многие думают, что это магическое средство от ошибок )



  • @tet-vivi

    было бы больше действий я бы реализовал по другому)

    Покажите пожалуйста пример.
    Очень интересно, как ещё можно.
    А то я сейчас метки понаудаляю ))

    @UserTrue said in Принудительная загрузка страницы через GET:

    @tet-vivi said in Принудительная загрузка страницы через GET:

    это что бы было понятно тем кто не знаком с програмированием

    Я понимаю, но по факту очень многие думают, что это магическое средство от ошибок )

    Я и думал, что просто работает на игнор.
    А оказывается он пропускает кубики. Хотя... он же пропускает только обернутые в игнор.
    Вообщем, у меня с этим проблем не возникало, просто интересно стало. Век живи век учись.



  • @kuzkuz в основе идут алгоритмы.

    помню схемы с уроков информатики навроде:
    e353c7f8-51d8-40bb-8c80-3b85f2063a40-image.png


Log in to reply