Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const STORAGE_KEY = 'extracted_urls';
- let results = JSON.parse(localStorage.getItem(STORAGE_KEY) || '[]');
- async function extractAllPages() {
- let currentPage = 1;
- let hasMore = true;
- console.log('[Started] Extracting all pages...');
- while (hasMore) {
- console.log(`[Page ${currentPage}] Fetching...`);
- try {
- // Build URL with page parameter
- const currentUrl = new URL(window.location.href);
- currentUrl.searchParams.set('page', currentPage);
- const response = await fetch(currentUrl.toString());
- const html = await response.text();
- // Parse HTML
- const parser = new DOMParser();
- const doc = parser.parseFromString(html, 'text/html');
- // Extract URLs
- const links = doc.querySelectorAll('a.text-danger[target="_blank"]');
- const urls = Array.from(links).map(link => link.href).filter(url => url);
- console.log(`[Page ${currentPage}] Found ${urls.length} URLs`);
- // No URLs found = no more pages
- if (urls.length === 0) {
- hasMore = false;
- break;
- }
- // Add to results (with duplicate check)
- let newCount = 0;
- urls.forEach(url => {
- if (!results.includes(url)) {
- results.push(url);
- newCount++;
- }
- });
- console.log(`[Page ${currentPage}] Added ${newCount} new URLs`);
- // Save to localStorage after each page
- localStorage.setItem(STORAGE_KEY, JSON.stringify(results));
- console.log(`[Total] ${results.length} unique URLs collected`);
- // FIX: Find the "Next" button specifically (not "Prev")
- const allButtons = doc.querySelectorAll('.pagination a.button');
- const nextButton = Array.from(allButtons).find(btn => btn.textContent.trim() === 'Next');
- if (!nextButton) {
- console.log('[Complete] No "Next" button found - reached last page');
- hasMore = false;
- break;
- }
- currentPage++;
- // Delay to be polite to server
- await new Promise(resolve => setTimeout(resolve, 1000));
- } catch (error) {
- console.error(`[Error on page ${currentPage}]`, error);
- hasMore = false;
- }
- }
- console.log('[Complete] Extraction finished!');
- console.log(`[Final Count] ${results.length} unique URLs`);
- console.log('[Retrieve] JSON.parse(localStorage.getItem("extracted_urls"))');
- // Show results preview
- console.log('[Preview] First 10 URLs:');
- results.slice(0, 10).forEach((url, i) => console.log(`${i+1}. ${url}`));
- }
- // Optional: Clear previous results
- // localStorage.removeItem(STORAGE_KEY);
- // results = [];
- extractAllPages();