Hacked Together Elegantly
Here’s some code hacked together elegantly to help you awesome folk rip data from your trial lead list generators, $50K for annual licenses is a ripoff no matter what size org you are imho, and especially if you are not white. This will help you export bulk data, appropriately categorized into CSV -> Excel.
Have fun ☺️🚀❤️ - highly advise you use a TOR so the computer isn’t flagged.
If you have any questions dm me on twitter, discord, or slack, I’m not putting this up on GitHub, that’s Asiya’s world.
data = []
function wait(ms){
var start = new Date().getTime();
var end = start;
while(end < start + ms) {
end = new Date().getTime();
}
}
function getContactName(row) {
return row.getElementsByClassName('dotten-text-content')[0].textContent
}
function getCompanyName(row) {
return row.getElementsByClassName('dotten-text-content')[1].textContent
}
function getCompanyIndustry(row) {
return row.getElementsByClassName('dotten-text-content')[2].textContent
}
function hasChildWithString(elem, str) {
return Array.from(elem.getElementsByClassName("text")).find(a => a.textContent === str) !== undefined
}
function getElem(row, str) {
x = row.getElementsByClassName("wrapper")
directPhoneSpanWrapper = Array.prototype.slice.call(x).find(a => hasChildWithString(a, str))
if (directPhoneSpanWrapper !== null) {
return directPhoneSpanWrapper.getElementsByClassName("copy_to_clipboard_icon")[0]
}
}
async function getClipboardData(row, str) {
try {
elem = getElem(row, str)
if (elem !== undefined) {
await elem.click()
return await window.navigator.clipboard.readText()
}
} catch { }
}
async function getData() {
wait(3000)
rows = document.getElementsByClassName('p-selectable-row')
for (var i = 0; i < rows.length; i++) {
name = getContactName(rows[i])
directPhoneNumber = await getClipboardData(rows[i], "D")
hqPhoneNumber = await getClipboardData(rows[i], "HQ")
mobilePhoneNumber = await getClipboardData(rows[i], "M")
businessEmail = await getClipboardData(rows[i], "B")
supplementalEmail = await getClipboardData(rows[i], "S")
companyName = getCompanyName(rows[i])
industry = getCompanyIndustry(rows[i])
data.push([name, directPhoneNumber, hqPhoneNumber, mobilePhoneNumber, businessEmail, companyName, industry])
}
}
function exportToCSV() {
let csvContent = "data:text/csv;charset=utf-8,"
+ data.map(e => e.join(",")).join("\n");
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
}
It’s from الله