Discover exact POST parameters

Viewed 23

I'm trying to get data from a website that does not have an API documentation. I used selenium to login and navigate. Today I found the data I need, it appears after a post request.

There's any way I can get the exact post parameters to do it in my node program? Data I need

edit 1:

the code that works from console browser scrap the data from the page and save a csv file:

const timeElapsed = Date.now();
const today = new Date(timeElapsed);

let updateTime;
let dataStudents = "";
let anoSerie;
let turma;
let prova;
let disciplina;

class AlunoProva {
    constructor(nome, Status, anoSerie, turma, prova, disciplina, modalidadeEnsino, data) {
        this.nome = nome;
        this.Status = Status;
        this.anoSerie = anoSerie;
        this.turma = turma;
        this.prova = prova;
        this.disciplina = disciplina;
        this.modalidadeEnsino = modalidadeEnsino;
        this.data = data;
    }
}

var saveData = (function () {
    var a = document.createElement("a");
    document.body.appendChild(a);
    a.style = "display: none";
    return function (data, fileName) {
        blob = new Blob([data], { type: "ext/csv;charset=utf-8;" }),
            url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
    };
}());

const atualState = "Finalizado - Digital, Não iniciado, Em progresso - Digital"

function getTurma() {

    let Turma = prompt("Informe a letra da turma atual", "A");
    while (Turma == null || Turma == "") {
        alert("Truma inválida! Por favor, informe uma turma válida.");
        Turma = prompt("Informe a letra da turma atual", "A");
    }
    return Turma;
}
turma = getTurma().toUpperCase();

function getCombo(id) {
    let combo = document.getElementById(id);
    let dataComboSelected = combo.options[combo.selectedIndex].text;
    return dataComboSelected;
}

String.prototype.hashCode = function () {
    var hash = 0, i, chr;
    if (this.length === 0) return hash;
    for (i = 0; i < this.length; i++) {
        chr = this.charCodeAt(i);
        hash = ((hash << 5) - hash) + chr;
        hash |= 0; // Convert to 32bit integer
    }
    return hash;
};

let aluno = new AlunoProva()



function dataMount(data) {
    if (data !== "ESTUDANTE" && data !== "PARTICIPAÇÃO")
        if (!atualState.includes(data)) {
            aluno.nome = data;
            dataStudents += data + ",";
        }
        else {
            aluno.Status = data;
            dataStudents += data + ",";
            aluno.anoSerie = anoSerie;
            dataStudents += anoSerie + ","
            aluno.turma = turma;
            dataStudents += turma + ","
            aluno.prova = prova;
            dataStudents += prova + ","
            aluno.disciplina = disciplina;
            dataStudents += disciplina + ","

            if (anoSerie.includes("EF")) {
                aluno.modalidadeEnsino = "Fundamental";
                dataStudents += "Fundamental,"
            }
            else {
                aluno.modalidadeEnsino = "Médio";
                dataStudents += "Médio,"

            }

            aluno.data = today.toLocaleDateString();
            dataStudents += today.toLocaleDateString() + "\n"
        }
}

prova = getCombo('selectnn74f9d641c4DADOS.VL_FILTRO_AVALIACAO')
disciplina = getCombo('select3lw7fc885326DADOS.VL_FILTRO_DISCIPLINA')
anoSerie = getCombo('selecty0fuc3bed07cDADOS.VL_FILTRO_ETAPA')

Array.from($$("body table tr *")).forEach((el) => {
    el = String(el.innerHTML)

    if (el.indexOf('Atualizado') === 0) {
        updateTime = el;
    } else if (el.length != 0 && el != undefined) {
        dataMount(el);
    }

});
let hashname = (anoSerie + turma + prova + disciplina + JSON.stringify(today.toLocaleDateString())).toString();
fileName = `${anoSerie} - ${turma} - ${prova} - ${disciplina}"${hashname.hashCode()}".csv`

saveData(dataStudents, fileName);

I'm having a problem with selectors on node, just rebember that I'm not conected with the site, I'm simulating a navigation with selenium. All the frameworks I checked to help me with selectors needed that I provide an url, but I can't, the only way I found to enter the system is from selenium navigation to simulating a real user.

0 Answers
Related