Автоматически раскрывайте «показать ещё» и загружайте постраничный контент
Ветки комментариев, отзывы о товарах, документация и результаты поиска любят прятать контент за кнопкой «Показать ещё» или разбивать его на бесконечные страницы. С JavaScript-правилом JustZix вы можете раскрыть и загрузить всё это автоматически, а затем читать в одной непрерывной прокрутке.
Шаблон: кликать, пока не исчезнет
Правило автораскрытия делает одно и то же многократно: найти кнопку, кликнуть её, дождаться нового контента, повторить — пока кнопка не исчезнет. Вот самодостаточная версия с защитным ограничителем, чтобы она никогда не зацикливалась вечно.
function autoExpand(selector, maxClicks) {
var clicks = 0;
var timer = setInterval(function () {
var btn = document.querySelector(selector);
if (!btn || clicks >= maxClicks) {
clearInterval(timer);
return;
}
btn.click();
clicks++;
}, 800);
}
autoExpand('.show-more-button', 50);
Интервал в 800 мс даёт странице время отрисовать новые элементы между кликами. Увеличьте его для медленных сайтов. Ограничитель maxClicks в 50 предотвращает убегающие циклы на бесконечных лентах.
Найдите кнопку по тексту
Если у кнопки нет стабильного селектора, найдите её по метке. Этот помощник возвращает первый видимый элемент, чей текст совпадает.
function findByText(words) {
var els = document.querySelectorAll('button, a, [role="button"]');
for (var i = 0; i < els.length; i++) {
var t = (els[i].textContent || '').trim().toLowerCase();
for (var j = 0; j < words.length; j++) {
if (t.indexOf(words[j]) !== -1 && els[i].offsetParent !== null) {
return els[i];
}
}
}
return null;
}
var timer = setInterval(function () {
var btn = findByText(['show more', 'load more', 'view more', 'see more',
'показать ещё', 'загрузить ещё', 'смотреть ещё']);
if (btn) { btn.click(); } else { clearInterval(timer); }
}, 800);
Проверка offsetParent !== null пропускает скрытые кнопки, так что цикл корректно завершается, когда настоящая кнопка убрана.
Раскройте сразу каждый свёрнутый раздел
Страницы документации часто используют много мелких переключателей (аккордеоны FAQ, образцы кода). Чтобы открыть их все одним махом, кликните каждый переключатель, который сейчас свёрнут.
var toggles = document.querySelectorAll('[aria-expanded="false"]');
toggles.forEach(function (t) {
t.click();
});
Атрибут aria-expanded — это веб-стандарт, так что это работает на широком спектре доступных компонентов без селекторов, специфичных для сайта.
Автоматически загрузите следующую страницу
Для классической нумерованной пагинации вы можете подтянуть элементы следующей страницы в текущую. Эта версия находит ссылку «следующая», получает страницу через fetch на том же источнике и добавляет новые элементы списка.
function loadNextPage(listSelector, nextSelector) {
var next = document.querySelector(nextSelector);
var list = document.querySelector(listSelector);
if (!next || !list || !next.href) return;
fetch(next.href)
.then(function (r) { return r.text(); })
.then(function (html) {
var doc = new DOMParser().parseFromString(html, 'text/html');
var newList = doc.querySelector(listSelector);
if (newList) {
Array.prototype.forEach.call(newList.children, function (item) {
list.appendChild(item);
});
}
})
.catch(function () { /* игнорировать сетевые ошибки */ });
}
loadNextPage('.results-list', 'a[rel="next"]');
Это запрашивает страницы только с того же сайта, на котором вы уже находитесь — никаких сторонних вызовов. Оберните это в цикл с ограничителем кликов, если хотите несколько страниц сразу.
Практические советы
- Всегда задавайте ограничитель кликов. Бесконечная прокрутка плюс неограниченный цикл будут загружать вечно.
- Используйте селекторы
aria-expanded, когда они доступны; они переживают редизайны сайта лучше имён классов. - Проверьте тайминг интервала — слишком быстро, и вы кликаете до того, как новый контент устоялся.
- Для страниц с настоящей бесконечной прокруткой раскрытие всего может сделать вкладку тяжёлой; раскрывайте партиями.
Найдите готовые версии в готовых примерах или скачайте JustZix, чтобы начать автоматизировать. Если на сайте также отключено выделение, смотрите разблокировку копирования и правого клика.
Оцени эту статью
Оценок пока нет — оцени первым.