Skip to content

Instantly share code, notes, and snippets.

@silkimen
Last active September 30, 2018 15:19
Show Gist options
  • Save silkimen/aec783594d6c07d529249c023b574c78 to your computer and use it in GitHub Desktop.
Save silkimen/aec783594d6c07d529249c023b574c78 to your computer and use it in GitHub Desktop.
Crawling offerings in interhyp customer portal
(function() {
const whitelistedIndexes = [0, 10, 12, 14, 16, 18, 20, 22, 24];
const getCsvLine = row => row.join(';');
const removeRedundancy = value => value.replace('Darlehensbetrag ', '');
const getValue = element => `"${element.innerHTML}"`;
const isWhitelisted = (element, index) => whitelistedIndexes.includes(index);
const getTag = row => Array
.from(
row.getElementsByTagName('h3').length ? row.getElementsByTagName('h3') :
row.getElementsByTagName('div').length ? row.getElementsByTagName('div') :
row.getElementsByTagName('span')
);
const getRows = container => Array
.from(container.getElementsByClassName('data-row'))
.map(getTag)
.flat()
.filter(isWhitelisted)
.map(getValue)
.map(removeRedundancy);
const getContainers = () => Array
.from(document.getElementsByClassName('ehyp-package-bids-bid'));
const getCsvData = () => getContainers()
.map(getRows)
.map(getCsvLine);
const csvHeader = '"Anbieter";"Kreditsumme";"Effektiver Zins";"Monatsrate";"Sollzinsbindung";"Tilgung";"Restschuld";"Bereitstellungszinsfreie Zeit";"Sondertilgung"\n';
return csvHeader + getCsvData().join('\n');
}());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment