Pergunta

Estou vindo de um histórico de computação científica e tenho alguma história com algumas linguagens de programação populares e não populares (ad hoc), mas sou completamente estranho à programação e JavaScript do lado do cliente.

Já escrevi um javascript trivial para minhas configurações de Greasemonkey antes, mas isso é tudo.

Minha pergunta diz respeito: http://www.ise.org/sirketler/sirketler.aspx

Estou tentando obter todos os dados sobre valores mobiliários e empresas da tabela fornecida no URL acima, que é o local da Bolsa de Valores de Istambul turca.

Esses dados são fornecidos em uma tabela de grade classificados de acordo com as letras que o nome da empresa começa e no máximo 10 linhas por grade é dada como se pode ver. Também no canto inferior direito da página, lá escreve quantas páginas essas informações estão espalhadas.

Por exemplo, você pode ligar do console do Firebug:

__doPostBack('ctl00$cphContent$ctl00$lbtnT','')

Para levar as empresas começando com 't' e você pode navegar nas guias dessas tabela emitindo:

__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl05','')
__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl07','')
__doPostBack('ctl00$cphContent$ctl00$radGridSirketler$ctl00$ctl03$ctl01$ctl09','')

etc. para 1º, 2º e 3º páginas desta tabela, respectivamente.

Eu tentei serializar isso emitindo __doPostBack() Método para uma determinada matriz de letras e números concatenando -os na sequência fixa acima, mas não foi bem -sucedida.

Então, como posso usar __doPostBack() Método e anexar todas essas sub tabletas resultantes e obter os dados gerais?

Existe algum recurso para ler para esse tipo de tarefas?

Peço desculpas pela minha pergunta amadora de todos os hackers do JS.

Foi útil?

Solução

Espero que este exemplo esclareça seu caminho:

// ==UserScript==
// @name           Examples : sirketler
// @namespace      http://gm.wesley.eti.br/examples
// @description    Simulation of an aspx PostBack request
// @include        http://www.ise.org/sirketler/sirketler.aspx
// @require        http://userscripts.org/scripts/source/63808.user.js
// @require        http://userscripts.org/scripts/source/89515.user.js
// ==/UserScript==

AspxPostBackRequest({
    "url" : "http://www.ise.org/sirketler/sirketler.aspx",
    "manager" : "ctl00$ScriptManager1",
    "eventTarget" : "ctl00$cphContent$ctl00$lbtnT",
    "callback" : function(xhr)
    {
        var content = document.createElement("div");
        content.innerHTML = xhr.responseText.split("|")[3];

        alert(xpath("./div/table/tbody/tr", content).map(function(row)
        {
            return [].slice.call(row.cells).map(function(col)
            {
                return col.textContent.replace(/^\s+|\s+$/gm, "");
            });
        }).join("\n"));
    }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top