docparse-scraper-nst
Version:
Node Zombie based scraper to scrape bills from the NStar (supplier code "NST)" website
39 lines (34 loc) • 1.22 kB
JavaScript
var rk = require('required-keys');
module.exports = function (data, cb) {
var keys = ['billDateString', 'bro'];
var err = rk.truthySync(data, keys);
if (err) { return cb(err); }
var bro = data.bro;
var atAccountHomepage = data.atAccountHomepage;
if (!atAccountHomepage) {
atAccountHomepage = require('./atAccountHomepage');
}
var atPage = atAccountHomepage(bro);
if (!atPage) {
return cb('error selecting bill, not at account homepage when we should be');
}
var goToPrintFriendlyPage = data.goToPrintFriendlyPage;
if (!goToPrintFriendlyPage) {
goToPrintFriendlyPage = require('./goToPrintFriendlyPage');
}
var billDateString = data.billDateString;
deselectAllBills(bro);
bro.select('select[name=billDate]', billDateString, function (err, b) {
bro.evaluate('document.querySelector(\'select[name="billDate"]\').form.submit()');
bro.wait(function (err, reply) {
goToPrintFriendlyPage(data, cb);
});
});
};
function deselectAllBills(bro) {
var selectedOptions = bro.querySelectorAll('select[name=billDate] option');
selectedOptions.map(function (option) {
var value = option.getAttribute('value');
option.removeAttribute('selected');
});
}