// Setup here: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs var request = require('request'), jsdom = require('jsdom'), sys = require('sys'), fs = require('fs'); // for eventually just writing out a file var uri = 'http://domain.com'; request({uri:uri}, function (error, response, body) { if (!error && response.statusCode == 200) { var window = jsdom.jsdom(body).createWindow(); jsdom.jQueryify(window, 'jquery-1.4.2.js', function (window, jquery) { var jq = window.jQuery; var events = []; var year = "2004"; var $tables = jq("table"); $tables.each(function () { var month = ""; jq(this).find('tr').each( function() { if (jq(this).prev('a').length) { month = jq(this).prev('a').attr('name'); } var $tds = jq(this).find("td"); var event = {}; event.date = jq($tds[0]).text().replace(/\D+/,""); if(event.date != "") { event.date = year + " " + month + ' ' + event.date; event.location = jq($tds[2]).text() + ', ' + jq($tds[1]).text(); events.push(event); sys.puts(event.date + ":" + event.location); // just outputs to console for now } }); }); // TODO: write out entire events array to file }); } });