Skip to content

Instantly share code, notes, and snippets.

@aaronfay
Created May 31, 2024 01:00
Show Gist options
  • Save aaronfay/bbfcf1037eeb1b4aa5032d5d6021cebf to your computer and use it in GitHub Desktop.
Save aaronfay/bbfcf1037eeb1b4aa5032d5d6021cebf to your computer and use it in GitHub Desktop.
Scraping reviews from capterra
function downloadFileWithContents(filename, fileContents) {
const blob = new Blob([fileContents], {type: 'text'});
const elem = window.document.createElement('a');
elem.href = window.URL.createObjectURL(blob);
elem.download = filename;
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
}
function getRows() {
allCards = document.querySelectorAll('.review-card')
return Array.from(allCards).map(card => {
first = card.querySelector('p:nth-of-type(1)').innerText
index = 0
comments = ''
if (first.startsWith('Comments:')) {
index = 1
comments = card.querySelector(`p:nth-of-type(1)`)
}
cons = card.querySelector(`p:nth-of-type(${index + 4})`)
comments = comments ? comments.innerText : ''
cons = cons ? "" + cons.innerText : ''
comments = comments.trim().replace('"', '\"').replace(/\"/g, "'").replace(/(?:\r\n|\r|\n)/g, ' ')
cons = cons.trim().replace('"', '\"').replace(/\"/g, "'").replace(/(?:\r\n|\r|\n)/g, ' ')
return `${comments}|${cons}`
})
}
downloadFileWithContents('mycsv.csv', getRows().join('\n'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment