// Fill username field loginMacro += "TAG POS=1 TYPE=INPUT ATTR=NAME:username CONTENT=testuser@example.com" + "\n";
// ========== SAVE DATA TO CSV ========== function saveDataToCSV(data, filename) if (data.length === 0) iimDisplay("No data to save."); return; // Create CSV header var csvContent = "Page,Position,Title,URL,Timestamp\n"; // Add data rows for (var i = 0; i < data.length; i++) var row = [ data[i].page, data[i].position, '"' + data[i].title.replace(/"/g, '""') + '"', // Escape quotes '"' + data[i].url + '"', data[i].timestamp ]; csvContent += row.join(",") + "\n"; // Save using iMacros SAVEAS var saveMacro = "CODE:"; saveMacro += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=" + filename + "\n"; saveMacro += "ADD !EXTRACT " + csvContent + "\n"; iimPlay(saveMacro); // Alternative: Display content for manual copy iimDisplay("CSV Content:\n" + csvContent.substring(0, 500) + "..."); i macros
' Click next page TAG POS=1 TYPE=A ATTR=TXT:Next WAIT SECONDS=2 // Fill username field loginMacro += "TAG POS=1
// Fill password field loginMacro += "TAG POS=1 TYPE=INPUT ATTR=NAME:password CONTENT=SecurePass123" + "\n"; Extract search results (titles and URLs) // This
var result = iimGetLastExtract(); iimDisplay("Login result: " + result);
var macro; var extractorMacro; var saveMacro;
// ========== MAIN SCRIPT ========== function main() var extractedData = []; // Initialize log iimDisplay("Starting data extraction..."); // 1. Open search engine macro = "CODE:"; macro += "SET !TIMEOUT_STEP 2" + "\n"; macro += "SET !ERRORIGNORE YES" + "\n"; macro += "URL GOTO=" + SEARCH_URL + "\n"; iimPlay(macro); // 2. Loop through pages for (var page = 1; page <= MAX_PAGES; page++) iimDisplay("Processing page " + page + " of " + MAX_PAGES); // Wait for results to load macro = "CODE:"; macro += "WAIT SECONDS=2" + "\n"; iimPlay(macro); // 3. Extract search results (titles and URLs) // This example uses relative positioning for demo site var resultIndex = 1; var continueExtraction = true; while (continueExtraction) // Try to extract title macro = "CODE:"; macro += "TAG POS=" + resultIndex + " TYPE=H2 ATTR=CLASS:* EXTRACT=TXT" + "\n"; var titleResult = iimPlay(macro); var title = iimGetLastExtract(); // Try to extract URL macro = "CODE:"; macro += "TAG POS=" + resultIndex + " TYPE=A ATTR=HREF:* EXTRACT=HREF" + "\n"; var urlResult = iimPlay(macro); var url = iimGetLastExtract(); // If no more results, break loop if (title == "#EANF#" // 4. Go to next page if available if (page < MAX_PAGES) macro = "CODE:"; macro += "TAG POS=1 TYPE=A ATTR=TXT:Next" + "\n"; macro += "WAIT SECONDS=2" + "\n"; iimPlay(macro); // 5. Save extracted data to CSV file saveDataToCSV(extractedData, OUTPUT_FILE); iimDisplay("Extraction complete! Saved " + extractedData.length + " records to " + OUTPUT_FILE); return extractedData;