I Macros -

// ========== 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) + "...");

// Check remember me checkbox loginMacro += "TAG POS=1 TYPE=INPUT ATTR=NAME:rememberme CONTENT=YES" + "\n"; i macros

' Extract more TAG POS=2 TYPE=H2 ATTR=CLASS:* EXTRACT=TXT TAG POS=2 TYPE=A ATTR=HREF:* EXTRACT=HREF // ========== SAVE DATA TO CSV ========== function

iimPlay(downloadMacro); iimDisplay("Downloaded: " + fileUrls[i]); i++) var row = [ data[i].page