0

我来自科学计算背景,并且确实有一些流行和非流行(临时)编程语言的历史,但我对客户端编程和 JavaScript 完全陌生。

我之前为我的 Greasemonkey 设置编写了一些简单的 JavaScript,但仅此而已。

我的问题涉及:   http ://www.ise.org/sirketler/sirketler.aspx

我正在尝试从上面的 URL 中给出的表格中获取有关证券和公司的所有数据,该 URL 是土耳其伊斯坦布尔证券交易所的网站。

该数据在根据公司名称开头的字母分类的网格表中给出,并且每个网格最多可以看到 10 行。同样在页面的右下角,写着此信息传播了多少页。

例如,您可以从 Firebug 控制台调用:

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

获取以“T”开头的公司,您可以通过发出以下命令浏览这些表的选项卡:

__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','')

等,分别为该表的第 1、第 2 和第 3 页。

我试图通过__doPostBack()将给定的字母和数字数组连接到上面的固定字符串来发出方法来序列化它,但它没有成功。

那么如何使用__doPostBack()方法并附加所有这些结果子表并获取整体数据?

是否有资源可以阅读此类任务?

对于所有 JS 黑客的业余问题,我深表歉意。

4

1 回答 1

1

希望这个例子能启发你的路径:

// ==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"));
    }
});
于 2010-11-02T17:27:39.543 回答