diff --git a/maxun-core/src/browserSide/scraper.js b/maxun-core/src/browserSide/scraper.js index d721caff..0ba8cbf8 100644 --- a/maxun-core/src/browserSide/scraper.js +++ b/maxun-core/src/browserSide/scraper.js @@ -145,6 +145,25 @@ async function scrollDownToLoadMore(selector, limit) { } } +async function scrollUpToLoadMore(selector, limit) { + let previousHeight = 0; + let itemsLoaded = 0; + + while (itemsLoaded < limit) { + window.scrollBy(0, -window.innerHeight); + await new Promise(resolve => setTimeout(resolve, 1000)); + + const currentHeight = document.body.scrollHeight; + + if (currentHeight === previousHeight) { + break; // No more items to load + } + + previousHeight = currentHeight; + itemsLoaded += document.querySelectorAll(selector).length; + } +} + /** * Returns a "scrape" result from the current page. * @returns {Array} *Curated* array of scraped information (with sparse rows removed)