Как отследить новые элементы?



  • Всех приветствую!
    Есть страница на которой происходит например ничего:D
    И в один момент на странице меняется текст и появляются некие элементы. Можно ли в BAS реализовать отслеживание элементов? Плевать какой элемент поменяется, например, обновился текст, если он обновился, то нужно сделать какое-либо действие. Как понять BAS, что на странице обновилось что-либо?
    Заранее спасибо!



  • @sidorikv said in Как отследить новые элементы?:

    Всех приветствую!
    Есть страница на которой происходит например ничего:D
    И в один момент на странице меняется текст и появляются некие элементы. Можно ли в BAS реализовать отслеживание элементов? Плевать какой элемент поменяется, например, обновился текст, если он обновился, то нужно сделать какое-либо действие. Как понять BAS, что на странице обновилось что-либо?
    Заранее спасибо!

    Самый простой вариант, это в цикле проверять код\текст элемента и сравнивать его с заранее сохранённым образцом



  • @Fox А существуют менее затратные процессы?



  • @sidorikv said in Как отследить новые элементы?:

    @Fox А существуют менее затратные процессы?

    менее затратные в каком плане? Асинхронно не получится выполнить функцию BAS из кода страницы



  • @Fox ну каждый раз будет крутиться цикл, это же очень затратно по ресурсам для пк?
    Ладно один поток, а если 30?



  • @sidorikv said in Как отследить новые элементы?:

    @Fox ну каждый раз будет крутиться цикл, это же очень затратно по ресурсам для пк?
    Ладно один поток, а если 30?

    эмм, действие "сон" самое незатратное действие в BAS :D



  • @Fox хорошо, я вас понял!
    Вопрос немного не по теме, но так как вы здесь я задам.
    У меня есть задача:
    Есть Кол-во потоков X
    Есть кол-во прокси X
    Как я могу прокси распределить на потоки?
    Например:
    Кол-во потоков = 30
    Кол-во прокси = 6
    Как мне раскидать 1 прокси на 5 потоков?



  • @sidorikv said in Как отследить новые элементы?:

    Вопрос немного не по теме, но так как вы здесь я задам.

    Меня здесь нет

    @sidorikv said in Как отследить новые элементы?:

    Как я могу прокси распределить на потоки?
    Например:
    Кол-во потоков = 30
    Кол-во прокси = 6
    Как мне раскидать 1 прокси на 5 потоков?

    Используйте список в глобальной переменной и берите прокси по очереди



  • @Fox так в том то и трабл, что по очереди не нужно, нужно раскидать их пропорционально потокам
    Например потоков 26, а прокси 2



  • @sidorikv said in Как отследить новые элементы?:

    @Fox так в том то и трабл, что по очереди не нужно, нужно раскидать их пропорционально потокам
    Например потоков 26, а прокси 2

    Пропорционально? а если потоков 13, а прокси 1 ?



  • @Fox то нужно, чтобы был 1 прокси на 13 потоках



  • @sidorikv said in Как отследить новые элементы?:

    Всех приветствую!
    Есть страница на которой происходит например ничего:D
    И в один момент на странице меняется текст и появляются некие элементы. Можно ли в BAS реализовать отслеживание элементов? Плевать какой элемент поменяется, например, обновился текст, если он обновился, то нужно сделать какое-либо действие. Как понять BAS, что на странице обновилось что-либо?
    Заранее спасибо!

    сохранить код страницы в html. и переодически сохранять копию. сравнивать размер в байтах.



  • @sidorikv said in Как отследить новые элементы?:

    @Fox то нужно, чтобы был 1 прокси на 13 потоках

    Ну так @Fox и говорит как нужно сделать. У меня реализовано так.
    Все прокси в глобальном списке.
    Поток подключается - берется прокси из списка. Для следующего потока следующая строка из списка и т.д. Там несложная математика...



  • @kuzkuz глобальный список? Научите?:D
    Тк я 40 минут искал так и не нашел, в список нельзя вот просто вставить глоб.перем



  • самое простое чтобы не париться.
    Поток получает в список SPISOK варианты прокси. Получаем кол-во элементов в списке. N
    далее
    if ( typeof(глобал_переменная) == 'undefined' || глобал_переменная == N-1) {
    глобал_переменна = 0
    } else {
    глобал_переменная увеличить на 1
    }
    получить из списка SPISOK строку №глобал_переменная

    все. ваша прокси для этого потока



  • @sidorikv сложный вариант:
    можно через js на странице добавить event
    https://developer.mozilla.org/ru/docs/Web/Events DOM mutation events



  • Привяжи прокси к номерам потоков
    если [[THREAD_INDEX]]=1 // 6, 11, 16,... (кратно 5)
    то использовать прокси №1

    если поток 2, 7, 12..., то прокси №2
    Это просто и нагрузка будет равномерно распределена



  • вручную он это будет прописывать? ;)
    Я выше ему дал абсолютно рабочий код, который все сам распределит



  • @kuzkuz огромное спасибо и тебе и @IvanM
    В любом случае, это и есть опыт и тот вариант и ваш



  • @kuzkuz

    вручную он это будет прописывать? ;)

    Тут уж хозяин-барин. Внутри бас можно многое автоматизировать, чтобы время не тратить.
    Но если реально 6 прокси, я бы не усложнял. Просто за 5 минут оформил бы 6 кубиков условий с копиями действий, да.


Log in to reply