@sergerdn да, показать больше товаров как раз через js обрабатывается, обычные запросы видят только 1ую страницу, последующие через запрос можно получить через ключ, о котором писал в топике, который шифрованный.
Разница между кубиком выполнить код и Яваскрипт
-
@gomeapat said in Разница между кубиком выполнить код и Яваскрипт:
Прошу объяснить
В чем отличие между кубиками Браузер -> Яваскрипт и Инструменты -> Выполнить код.
Где и в каких ситуциях следует применять тот или иной кубик.Действие "яваскрипт" выполняется в контексте браузера, а "выполнить код" в контексте скрипта.
То есть "яваскрипт" нужен, чтобы выполнять js на конкретной странице, а "выполнить код" для работы скрипта (можно весь скрипт запихать в действие "выполнить код" и он будет работать)
-
@gomeapat said in Разница между кубиком выполнить код и Яваскрипт:
А чем тогда "выполнить код" отличается от код на nodejs или это одно и тоже?
Нет не одно и тоже. Node js это грубо говоря отдельное приложение, с которым BAS взаимодействует
-
А т.е как я понял "выполнить код" это типа просто для javascript кода в котором я не могу использовать модули nodejs, а в nodejs могу использовать уже и модули nodejs.
@Fox said in Разница между кубиком выполнить код и Яваскрипт:
(можно весь скрипт запихать в действие "выполнить код" и он будет работать)
Вот тут вопрос а разве нельзя весь скрипт запихать в кубик nodejs там же тоже есть возможность вызова функций BAS ?
-
@gomeapat said in Разница между кубиком выполнить код и Яваскрипт:
Вот тут вопрос а разве нельзя весь скрипт запихать в кубик nodejs там же тоже есть возможность вызова функций BAS ?
а зачем тогда вообще BAS можно же напрямую вебдрайвом пользоваться?
-
@gomeapat said in Разница между кубиком выполнить код и Яваскрипт:
А т.е как я понял "выполнить код" это типа просто для javascript кода в котором я не могу использовать модули nodejs, а в nodejs могу использовать уже и модули nodejs.
"выполнить код" это внутрянка BAS, в нём можно вызывать методы внутреннего api, переопределять существующие функции, создавать сложные конструкции и прочее. Яваскрипт выполняется в браузере в текущем конктексте со всеми вытекающими (нельзя обратится к содержимому фрейма, нельзя из действия изменить переменную BAS и т.д.).
Любой код в действии "яваскрипт" будет работать только на текущей странице, при переходе на другую страницу весь код сбрасывается. А код в действии "выполнить код" сбросится по завершении потока.@Fox said in Разница между кубиком выполнить код и Яваскрипт:
(можно весь скрипт запихать в действие "выполнить код" и он будет работать)
Вот тут вопрос а разве нельзя весь скрипт запихать в кубик nodejs там же тоже есть возможность вызова функций BAS ?
Можно, только зачем?
-
@Fox said in Разница между кубиком выполнить код и Яваскрипт:
Можно, только зачем?
Чтобы потом на форуме писать, что все работает не так)))
-
@Fox спасибо за разернутый ответ
@tet-vivi said in Разница между кубиком выполнить код и Яваскрипт:
а зачем тогда вообще BAS можно же напрямую вебдрайвом пользоваться?
вебдрайвером пользовался и через python и через nodejs
но вот как там реализовать поддержку fingerprint не понятно.
А без этого вся идея ботоводства теряет свой смысл. -
@gomeapat said in Разница между кубиком выполнить код и Яваскрипт:
но вот как там реализовать поддержку fingerprint не понятно.
Никак, надо делать свою сборку хромиума
-
@Fox , вы писали
"выполнить код" это внутрянка BAS, в нём можно вызывать методы внутреннего api, переопределять существующие функции, создавать сложные конструкции и прочее. Яваскрипт выполняется в браузере в текущем конктексте со всеми вытекающими (нельзя обратится к содержимому фрейма, нельзя из действия изменить переменную BAS и т.д.).
Любой код в действии "яваскрипт" будет работать только на текущей странице, при переходе на другую страницу весь код сбрасывается. А код в действии "выполнить код" сбросится по завершении потока.@Fox , Не могли бы вы уточнить. Я правильно понял, что из действия "Яваскрипт" обратиться к стандартному действия БАС (к примеру "Проверить наличие элемента") не получится?
Иными словами я не понял, что означает "методы внутреннего api". К ним относятся действия БАС, доступные внутри интерфейса БАСа? -
@aliver said in Разница между кубиком выполнить код и Яваскрипт:
@Fox , вы писали
"выполнить код" это внутрянка BAS, в нём можно вызывать методы внутреннего api, переопределять существующие функции, создавать сложные конструкции и прочее. Яваскрипт выполняется в браузере в текущем конктексте со всеми вытекающими (нельзя обратится к содержимому фрейма, нельзя из действия изменить переменную BAS и т.д.).
Любой код в действии "яваскрипт" будет работать только на текущей странице, при переходе на другую страницу весь код сбрасывается. А код в действии "выполнить код" сбросится по завершении потока.@Fox , Не могли бы вы уточнить. Я правильно понял, что из действия "Яваскрипт" обратиться к стандартному действия БАС (к примеру "Проверить наличие элемента") не получится?
Иными словами я не понял, что означает "методы внутреннего api". К ним относятся действия БАС, доступные внутри интерфейса БАСа?Из действия "Яваскрипт" нельзя выполнить другие действия BAS, грубо говоря потому что он выполняет код во вкладке console браузера, а действие "Выполнить код" выполняет код внутри BAS.
-
@Fox спасибо! А есть ли способ каким-то образом узнать, каким способом БАС проверяет видимость объекта на странице?
Опишу ситуацию для лучшего понимания.
Есть js код, который парсит страницу. Внутри должна находится проверка существования элемента и проверка его видимости (жизненно необходимо). И я нашел функцию js, которая проверяет видимость элемента. Но работает она значительно хуже, чем родная БАСовская. Проблема в том, что пока я не проскролю страницу полностью, эта функция не учитывает элементов "вне зоны видимости браузера". То есть эти элементы УЖЕ загружены с сервера, но браузер их типа ещё не прорисовал. И моя функция js показывает, что мол "element is invisible", хотя если проскроллить страницу - он офигенно видим)Пытаюсь понять, в какую сторону копать? Что-то мне подсказывает, что в сторону DOM.
Хорошего дня, @Fox! Благодарю Вас :)
-
@aliver said in Разница между кубиком выполнить код и Яваскрипт:
@Fox спасибо! А есть ли способ каким-то образом узнать, каким способом БАС проверяет видимость объекта на странице?
Откройте код действия, там будет функция js, которая производит определение видимости

Опишу ситуацию для лучшего понимания.
Есть js код, который парсит страницу. Внутри должна находится проверка существования элемента и проверка его видимости (жизненно необходимо). И я нашел функцию js, которая проверяет видимость элемента. Но работает она значительно хуже, чем родная БАСовская. Проблема в том, что пока я не проскролю страницу полностью, эта функция не учитывает элементов "вне зоны видимости браузера". То есть эти элементы УЖЕ загружены с сервера, но браузер их типа ещё не прорисовал. И моя функция js показывает, что мол "element is invisible", хотя если проскроллить страницу - он офигенно видим)Пытаюсь понять, в какую сторону копать? Что-то мне подсказывает, что в сторону DOM.
Хорошего дня, @Fox! Благодарю Вас :)
Зачем использовать чужой код, если не понимаете как его исправить? Может проще добиться итоговой цели используя инструменты с которыми умеете работать?
Ну и без самого кода функции вам вряд ли смогут помочь -
"Dice execute code" is not a commonly used term in programming, so I'm assuming you're referring to "Dice notation", which is a shorthand used in tabletop games to represent random numbers generated by rolling dice.
JavaScript, on the other hand, is a programming language used for creating dynamic and interactive web pages.
The key difference between the two is that Dice notation is a shorthand notation for representing random numbers generated by rolling dice, while JavaScript is a full-fledged programming language used for creating dynamic and interactive web pages.
Dice notation is used in tabletop games to represent random numbers generated by rolling dice, and it is not a programming language. It is a shorthand notation used by players and game masters to represent the outcomes of dice rolls, which are used to determine the results of various actions in the game.
JavaScript, on the other hand, is a high-level, interpreted programming language that is widely used to create dynamic and interactive web pages. It is a full-fledged programming language with a syntax and structure that allows developers to create complex applications and perform a wide range of tasks, from user interface design to server-side programming.
In summary, Dice notation is a shorthand notation used in tabletop games to represent random numbers generated by rolling dice, while JavaScript is a programming language used for creating dynamic and interactive web pages.
-
@Robert said in Разница между кубиком выполнить код и Яваскрипт:
"Dice execute code" is not a commonly used term in programming, so I'm assuming you're referring to "Dice notation", which is a shorthand used in tabletop games to represent random numbers generated by rolling dice.
JavaScript, on the other hand, is a programming language used for creating dynamic and interactive web pages.
The key difference between the two is that Dice notation is a shorthand notation for representing random numbers generated by rolling dice, while JavaScript is a full-fledged programming language used for creating dynamic and interactive web pages.
Dice notation is used in tabletop games to represent random numbers generated by rolling dice, and it is not a programming language. It is a shorthand notation used by players and game masters to represent the outcomes of dice rolls, which are used to determine the results of various actions in the game.
JavaScript, on the other hand, is a high-level, interpreted programming language that is widely used to create dynamic and interactive web pages. It is a full-fledged programming language with a syntax and structure that allows developers to create complex applications and perform a wide range of tasks, from user interface design to server-side programming.
In summary, Dice notation is a shorthand notation used in tabletop games to represent random numbers generated by rolling dice, while JavaScript is a programming language used for creating dynamic and interactive web pages.
The user was asking the difference between "Javascript" and "Execute code" actions


-
@Fox Прошу прощение за беспокойство, а какая версия яваскрипт используется когда работает блок Tools -> Execute code. То, что это внутрянка BAS-а. Я понял. А какая конкретно версия там используется? где можно найти доку?
Интересует возможность напрямую работать с файловой системой внутри этого блока. Читать \ писать файлы, создавать директории где надо. Определять текущую рабочую директорию процесса и т.д.
Так же итересует вопрос относительно того как работать с процессаами внутри этого блока. Запускать \ читать вывод \ проверять запущен ли процесс по его PID и т.д.
Спасибо. -
@traffic-coon said in Разница между кубиком выполнить код и Яваскрипт:
Интересует возможность напрямую работать с файловой системой внутри этого блока. Читать \ писать файлы, создавать директории где надо. Определять текущую рабочую директорию процесса и т.д.
Никакая версия js этого не умеет. Это умеет nodejs
-
@traffic-coon ECMA-262 стандарт, подробнее здесь:
https://doc.qt.io/qt-5/qtscript-index.html#language-overview