feat: click next pagination
This commit is contained in:
@@ -164,6 +164,47 @@ async function scrollUpToLoadMore(selector, limit) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function clickNextPagination(selector, scrapedData, limit) {
|
||||||
|
// Check if the limit is already met
|
||||||
|
if (scrapedData.length >= limit) {
|
||||||
|
return false; // Return false to indicate no further action is needed
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if a single "Next" button exists
|
||||||
|
let nextButton = document.querySelector(selector);
|
||||||
|
|
||||||
|
if (nextButton) {
|
||||||
|
nextButton.click();
|
||||||
|
return true; // Indicate that pagination occurred
|
||||||
|
} else {
|
||||||
|
// Handle pagination with numbers
|
||||||
|
const paginationButtons = document.querySelectorAll(selector);
|
||||||
|
let clicked = false;
|
||||||
|
|
||||||
|
// Loop through pagination buttons to find the current active page
|
||||||
|
for (let i = 0; i < paginationButtons.length - 1; i++) {
|
||||||
|
const button = paginationButtons[i];
|
||||||
|
if (button.classList.contains('active')) {
|
||||||
|
// Click the next button if available
|
||||||
|
const nextButtonInPagination = paginationButtons[i + 1];
|
||||||
|
if (nextButtonInPagination) {
|
||||||
|
nextButtonInPagination.click();
|
||||||
|
clicked = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no next button was clicked, we might be on the last page
|
||||||
|
if (!clicked) {
|
||||||
|
throw new Error("No more items to load or pagination has ended.");
|
||||||
|
}
|
||||||
|
|
||||||
|
//return clicked; // Indicate whether pagination occurred
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a "scrape" result from the current page.
|
* Returns a "scrape" result from the current page.
|
||||||
* @returns {Array<Object>} *Curated* array of scraped information (with sparse rows removed)
|
* @returns {Array<Object>} *Curated* array of scraped information (with sparse rows removed)
|
||||||
@@ -343,7 +384,7 @@ async function scrollUpToLoadMore(selector, limit) {
|
|||||||
await scrollUpToLoadMore(listSelector, limit);
|
await scrollUpToLoadMore(listSelector, limit);
|
||||||
break;
|
break;
|
||||||
case 'clickNext':
|
case 'clickNext':
|
||||||
//await clickNextPagination(pagination.selector);
|
await clickNextPagination(pagination.selector);
|
||||||
break;
|
break;
|
||||||
case 'clickLoadMore':
|
case 'clickLoadMore':
|
||||||
//await clickLoadMorePagination(pagination.selector);
|
//await clickLoadMorePagination(pagination.selector);
|
||||||
|
|||||||
Reference in New Issue
Block a user