docparse-scraper-nst
Version:
Node Zombie based scraper to scrape bills from the NStar (supplier code "NST)" website
43 lines (41 loc) • 1.51 kB
JavaScript
var rk = require('required-keys');
var inspect = require('eyespect').inspector();
var atPrintFriendlyPage = require('./atPrintFriendlyPage');
module.exports = function(data, cb) {
var keys = ['billDateString', 'billNumber', 'bro', 'config'];
rk.truthy(data, keys, function (err, reply) {
var config = data.config;
if (config.get('verbose')) {
inspect('going to print friendly page');
inspect(data.billNumber, 'bill number');
inspect(data.billDateString, 'bill date');
}
var bro = data.bro;
var currentLogin = data.currentLogin;
var selector = 'a[href*="/ebill/bill/print-friendly.do"]';
var link = bro.querySelector(selector);
if (!link) {
return cb('error selecting print friendly bill, link with text "Print-Friendly Bill" not found on page');
}
bro.clickLink(selector, function (err, reply) {
// bro.visit('https://nstar.com/ebill/bill/print-friendly.do', function (err, reply) {
if (err) {
inspect(err, 'error loading print friendly page');
}
var atPage = atPrintFriendlyPage(data);
if (atPage) {
return cb();
}
bro.visit('https://nstar.com/ebill/bill/print-friendly.do', function (err, reply) {
if (err) {
inspect(err, 'error loading print friendly page');
}
var atPage = atPrintFriendlyPage(data);
if (atPage) {
return cb();
}
return cb('failed to get to print friendly page');
});
});
});
};