Прокрутка



  • Как работает действие прокрутка и прокрутка к элементу? У меня не работает ни та, ни та функция. Задача - на странице пользователся Вконтакте открыть его интересные страницы, прогрузить их все и собрать список ссылок. Все получается, кроме прогрузки всех страниц. Как выйти из этой ситуации?



  • @MAKAR Самый простой вариант
    Попробуй кликнуть на нужное тебе окно и ввод текста:

    <END><END><END><END><END><END><END>
    


  • @MAKAR ааа, было такое. Я выходил так:
    установить переменную "сравнение списков" в false
    while сравнение списков==false
    код страницы
    регуляркой извлечь нужные элементы в список 1
    прокрутить к последнему элементу >match>[[LAST_LIST_ELEMENT]]
    <scrolldown><scrolldown><scrolldown><scrolldown><scrolldown><scrolldown><scrolldown><scrolldown>
    код страницы
    регуляркой извлечь нужные элементы в список 2
    сравнить списки в переменную "сравнение списков"

    Так цикл и будет крутить, пока списки не сравнятся. Если есть способ просче, прошу уважаемое коммунити поделиться со мной
    upd.Можно еще вбить увеличение переменной на 1 и остановку цикла, если она == нужному количеству циклов.
    Чтобы не крутило час огромный список, из которого нужен децел



  • @MAKAR тоже стояла такая задача) вот мое решение 0_1493668391121_example111.xml



  • @MAKAR Действие прокрутка прокручивает основное окно.
    Тут можно навести мышь на окно и использовать скрол мышкой через "Ввод текста" и <MOUSESCROLLDOWN>



  • @support Если действие прокрутка выдаёт "Таймаут действия Scroll" - это типа как раз основное окно прокрутить не возможно, и нужен костыль с прокруткой через "Ввод текста"? Сегодня на абсолютно простом сайте (knyagininskaya-voda.ru) с этим столкнулся.

    Поток №1 : Таймаут во время выполнения scroll
    

    [UPD] Не понятно, может ли на таком сайте стоять какая-то защита...
    В коде очевидно есть тег <Body>, но когда пытаешься его найти, получаешь вот такое.

    Таймаут во время выполнения highlight for[documentRoot, match_all <body]
    


  • @AngelOfAncient said in Прокрутка:

    @support Если действие прокрутка выдаёт "Таймаут действия Scroll" - это типа как раз основное окно прокрутить не возможно, и нужен костыль с прокруткой через "Ввод текста"? Сегодня на абсолютно простом сайте (knyagininskaya-voda.ru) с этим столкнулся.

    Поток №1 : Таймаут во время выполнения scroll
    

    [UPD] Не понятно, может ли на таком сайте стоять какая-то защита...
    В коде очевидно есть тег <Body>, но когда пытаешься его найти, получаешь вот такое.

    Таймаут во время выполнения highlight for[documentRoot, match_all <body]
    

    Сайт переопределяет функцию js:
    69883197-3b07-4a4d-bb11-a8856999bb11-изображение.png

    Похоже на простенькую защиту от XSS.
    Нужно заранее выполнить действие "Выполнять при каждой загрузке страницы в браузере" с параметром

    (function(original){
    Object.defineProperty(window, 'atob',{
                    configurable: true, 
                    get: function(){return original}, set: function(){}
                });
    })(window.atob);
    
    (function(original){
    Object.defineProperty(window, 'eval',{
                    configurable: true, 
                    get: function(){return original}, set: function(){}
                });
    })(window.eval)
    
    


  • @Fox said in Прокрутка:

    Похоже на простенькую защиту от XSS.

    Офигеть... А казалось бы, простой трёхкопеечный сайт.
    Спасибо, попробую.

    Вопрос от слегка нуба в JS - это решение поможет с конкретным сайтом или оно запрещает переопределение функций JS на сайтах вообще? Предыстория - собирал сайты из выдачи Yandex'а по ключам, а потом когда начинаю парсить сами сайты - ошибка с невозможностью скролла вылезает несколько раз (И вешает интерфейс BAS'а до кучи, даже при включённом Игноре Ошибок).



  • @AngelOfAncient said in Прокрутка:

    @Fox said in Прокрутка:

    Похоже на простенькую защиту от XSS.

    Офигеть... А казалось бы, простой трёхкопеечный сайт.
    Спасибо, попробую.

    Вопрос от слегка нуба в JS - это решение поможет с конкретным сайтом или оно запрещает переопределение функций JS на сайтах вообще? Предыстория - собирал сайты из выдачи Yandex'а по ключам, а потом когда начинаю парсить сами сайты - ошибка с невозможностью скролла вылезает несколько раз (И вешает интерфейс BAS'а до кучи, даже при включённом Игноре Ошибок).

    Этот сайт использует типовую библиотеку, которая и содержит эту небольшую защиту. Я уже встречал подобную библиотеку на нескольких других сайтах.
    Данный код просто не даёт переопределить функции atob() и eval(). Этот способ не привязан к конкретному сайту и будет работать на любых сайтах в принципе.


Log in to reply
 

  • 2
  • 2
  • 8
  • 17
  • 3
  • 2
  • 7
  • 6