@UserTrue said in Не пропускает на сайт cloudflare:
А вы кто стесняюсь спросить? 😂
Вероятно невидимые форумные стражи..
Кто парсил яндекс карты? Подскажите, как в браузере эмулируете скролл вниз именно в той части экрана где элементы выдачи (блок слева)? Скрипт ниже вытворяет что то странное, поднимая саму страницу вверх (а внизу - пустое пространство)
let elements = document.querySelectorAll('.search-snippet-view');
if (elements.length > 0) {
let lastElement = elements[elements.length - 1];
lastElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
setTimeout(() => {
window.scrollBy(0, 200);
}, 500); // Wait for the initial scroll to complete before scrolling down 100px
}
})();

Вопрос, вы движок в авто тоже через выхлопную трубу ремонтируете ?
Зачем усложнять самому себе жизнь ?
Включаем логику, простую думалку.
Скролить нам надо что ? Элементы, до какого времени ? Пока они не закончатся.
Ну так и скролите, берем ЦИКЛ, можете даже с рандомным наведением и нажатиями поиграться. И закончится этот самый цикл именно в том месте где будет последний элемент...
Возможно, я не полно объяснил вопрос. Хочу понять, как скроллить без странного эффекта с пустым пространством:
Скрипт ниже вытворяет что то странное, поднимая саму страницу вверх (а внизу - пустое пространство)
В целом, я нашел рабочий скрипт:
let elements = document.querySelectorAll('.search-snippet-view');
if (elements.length > 0) {
let lastElement = elements[elements.length - 1];
lastElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
setTimeout(() => {
// Get the position of the last element
const lastElementRect = lastElement.getBoundingClientRect();
const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
// Check if the last element is fully within the viewport
if (lastElementRect.bottom <= viewportHeight) {
// If the last element is fully in view, stop scrolling
return;
}
// If the last element is not fully in view, scroll down
window.scrollBy(0, 200);
}, 500); // Wait for the initial scroll to complete before scrolling down 200px
}
})();