javascript跳过步骤并仅执行最后一个命令

时间:2016-05-09 11:15:58

标签: javascript asp.net web-scraping

有人可以帮我解决JS scraper编码,我试图为使用类似ASP编码的网站创建...

我们使用该网站下载我们最新的软件培训手册,每次点击每个项目,我们必须下载50多本手册。下载管理器将无法工作,因为这些PDF链接到__doPostBack()节点。如果我只对一个条目使用我的编码,它可以很好地工作,但是当我开始批处理命令时,它会跳过__doPostBack直到达到最后一个条目,然后只执行那个条目。我已经尝试添加一个sleep命令来减慢进程的速度,如果这是问题,但所有这一切,就是睡眠 x -ms的脚本并跳过将文件保存到循环的任务试。

注意: 我对Javascript没有太多经验,因此下面的编码可能存在一些问题,并且我们非常感谢自己的教育!< / p>

我正在使用Google Chrome和Javascript控制台运行以下脚本:

//Sleep function found on StackOverflow to slow down script for cmdlet
function sleep(milliseconds) {
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds){
            break;
        }
    }
}

// Node starts with Index 2, so we start there to avoid errors
var i = 2;

while (i <= 15){
    console.log (i);

    // Execute __doPostBack(...) depending on int values
    switch(i){
        case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:
            var cmdlet = "GridViewLevel3$ctl0" + i + "$lnkFolder3";
            console.log (cmdlet);
            __doPostBack(cmdlet,'');
            sleep(6000);
            break;
        case 10: case 11: case 12: case 13: case 14: case 15:
            var cmdlet = "GridViewLevel3$ctl" + i + "$lnkFolder3";
            console.log (cmdlet);
            __doPostBack(cmdlet,'');
            sleep(6000);
            break;
        default:
            console.log("Error!"); //Handle Exceptions here...
            break;
    };

    i = i + 1;
}

0 个答案:

没有答案