Last active
December 9, 2016 19:43
-
-
Save vicenteguerra/f443d804ce5a382296e1fde5e94a1868 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var request = require('request'); | |
var fs = require('fs'); | |
var headers = { | |
'Origin': 'https://www.siass.unam.mx', | |
'Accept-Encoding': 'gzip, deflate, br', | |
'Accept-Language': 'es-ES,es;q=0.8,en;q=0.6', | |
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36', | |
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', | |
'Accept': 'application/json, text/javascript, */*; q=0.01', | |
'Referer': 'https://www.siass.unam.mx/', | |
'X-Requested-With': 'XMLHttpRequest', | |
'Connection': 'keep-alive' | |
}; | |
var dataString = 'sistema_pertenece=dgae'; | |
var options = { | |
url: 'https://www.siass.unam.mx/escuelafacultad-ajaxlist', | |
method: 'POST', | |
headers: headers, | |
body: dataString | |
}; | |
function firstCallback(error, response, body) { | |
if (!error && response.statusCode == 200) { | |
var inst = JSON.parse(body); | |
for (var i = 0; i < inst.length; i++) { | |
var optionsEscuela = { | |
url: 'https://www.siass.unam.mx/carrerabyfac-ajaxlist', | |
method: 'POST', | |
headers: headers, | |
body: "escuela_facultad_id=" + inst[i].id | |
}; | |
request(optionsEscuela, callback.bind({ | |
id: inst[i].id, | |
name: inst[i].nombre, | |
length: inst.length | |
})); | |
} | |
} | |
} | |
function Carrera(id, name, carreras) { | |
this.name = name; | |
this.id = id; | |
this.carreras = carreras; | |
} | |
var json = []; | |
function callback(error, response, body){ | |
if (!error && response.statusCode == 200) { | |
var carreras = JSON.parse(body); | |
carreras.map(function(obj){ | |
delete obj.created_at; | |
delete obj.updated_at; | |
delete obj.nivel; | |
return obj; | |
}); | |
var inst = new Carrera(this.id, this.name, carreras); | |
json.push(inst); | |
if(json.length == this.length -1){ | |
console.log("Saving"); | |
write(JSON.stringify(json)); | |
} | |
} | |
} | |
function write(json){ | |
fs.writeFile("unam.json", json, function(err) { | |
if(err) { | |
return console.log(err); | |
} | |
console.log("The file was saved!"); | |
}); | |
} | |
request(options, firstCallback); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment