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

我以前为我的GreaseMonKey设置写了一些琐碎的JavaScript,但仅此而已。

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

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

此数据是根据公司名称开始的字母分类的网格表中给出的,每条网格最多可用10行。同样在页面的右下角,写了几页,此信息已传播。

例如,您可以从火炉控制台打电话:

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

等等,该表的第一页,第二页和第三页。

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

那我该怎么使用 __doPostBack() 方法并附加所有这些结果子表并获取总体数据?

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

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

有帮助吗?

解决方案

希望这个示例能够启发您的道路:

// ==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"));
    }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top