Skip to content

Instantly share code, notes, and snippets.

@vicenteguerra
Last active December 9, 2016 19:43
Show Gist options
  • Save vicenteguerra/f443d804ce5a382296e1fde5e94a1868 to your computer and use it in GitHub Desktop.
Save vicenteguerra/f443d804ce5a382296e1fde5e94a1868 to your computer and use it in GitHub Desktop.
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