"Поток завершился с сообщением "NetworkAccessManager is not accessible, try to create new browser with open browser command"



  • Всем привет! Сделал скрипт для парсинга одного сайта. В режиме "Запись" работает всё как надо. Ставлю в режим "Запуск" и появляются ошибки "Поток завершился с сообщением "NetworkAccessManager is not accessible, try to create new browser with open browser command". Скрипт прилагаю.
    proekt01.xml

    001.jpg



  • @Cosmostars Зачем вы используете 'Вызов функции в несколько потоков', но ставите 1 поток и много успешных выполнений, если это можно сделать циклом?

    Вы загружаете страницу в одном потоке, а функция работает в другом, там не определен (грубо говоря) браузер.

    Вот вам простейший скрипт и он будет работать точно так же, как и ваш. Однако если вызов функции в неск. потоков заменить на обычный вызов всё будет ок.

    TestThreads



  • @Oyasumi-Punpun Я второй день пользуюсь прогой, и вроде понял вас но не совсем). Заменил вызов в несколько потоков на обычный вызов. По логике скрипта : после загрузки страницы с товарами, определяется кол-во товаров на странице, и потом он обходит каждый товар(данные внутри страницы с товаром. Как можно оптимизировать, ускорить действие скрипта? Я понимаю так: нужно в момент после загрузки страницы и определения кол-ва товаров на странице, как-то запустить в несколько потоков именно обход и парсинг для товаров на странице. Это верно или нет? И если да, то в какое место в скрипте вставить действие для многопотока?
    И ещё вы написали "если это можно сделать циклом?", но у меня выше стоит цикл FOR с количеством выполнений=числу товаров на странице. Или вы про другое место?



  • @Cosmostars "если это можно сделать циклом" - ну у вас был вызов в несколько потоков с большим кол-вом неуспешных повторений, если вам нужны эти неуспешные повторения - можно сделать циклом.

    Если вы хотите сделать максимально быстрый скрипт - следует использовать HTTP клиент и POST/GET запросы. По логике в принципе так - вы же не можете в одном окне браузера смотреть в одно время 100 товаров? И BAS не может. Если всё таки нужно через браузер + как можно быстрее - вам следует переделать логику работы. Тут вопрос как раз больше в вашей логике, а не правильности действий в принципе. В идеале в функции OnApplicationStart получить список товаров всех возможных, либо выделить для этого отдельный поток, а в основной части пусть каждый поток обрабатывает свой товар.

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


Log in to reply