Skip to content

Instantly share code, notes, and snippets.

@tmcw
Last active December 14, 2015 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmcw/5166987 to your computer and use it in GitHub Desktop.
Save tmcw/5166987 to your computer and use it in GitHub Desktop.
var request = require('request'),
fs = require('fs'),
cheerio = require('cheerio');
var url = 'https://wmq.etimspayments.com/pbw/inputAction.doh';
var all = {};
function getPlate(p, cb) {
var r = request({
method: 'POST',
headers: {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.28 Safari/537.31',
'Referrer': 'https://wmq.etimspayments.com/pbw/include/dc_parking/input.jsp?ticketType=P',
'COOKIE': 'JSESSIONID=0000LtZe0eFegls33J4eS3BQ9V4:-1'
},
form: {
clientcode: '09',
clientAccount: 7,
requestType: 'submit',
requestCount: 1,
ticketNumber: '',
statePlate: 'DC',
plateNumber: p,
submit: 'Submit'
},
url: url
}, function(err, d) {
var $ = cheerio.load(d.body);
var tn = $('b').filter(function(i, el) {
return $(el).text().trim() == 'Violation';
});
var table = tn.parent().parent().parent().parent();
var data = table.find('tr').map(function(i, el) {
return $(el).find('td').map(function(i, el) {
return $(el).text();
});
});
all[plateNumber] = data;
cb();
});
}
var plateNumber = 1;
function iterate() {
console.log('getting plate ', plateNumber);
if (plateNumber < 100) getPlate(plateNumber++, iterate);
else {
fs.writeFileSync('plates.json', JSON.stringify(all, null, 2));
}
}
iterate();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment