• 利用chrome console批量下载文件


    因工作需要,需要定期从某页面下载多个文档,是体力活。

    想用chrome扩展,找了几个不行。原因是:

    1、有的扩展识别不了链接,因为链接是形如:jsp?XXX=XXX的形式

    2、有的扩展能批量打开链接,但打开的太快了或其他原因,触发了验证码。

    想用chromedp模拟操作,感觉大材小用,也懒得费事。

    决定还是用比较简单的chrome console

    参考以下代码(https://bbs.csdn.net/topics/392177700?list=31152598

    (function () {
        var arr = ["https://www.baidu.com/","http://url2","http://url3"];
        var nw = window.open();
        var i = 0;
        function op() {
            console.log(arr[i]);
            nw.location = arr[i];
            i++;
            if (i<arr.length)
                setTimeout(op, 5000);
        }
        op();
    })();

    我写的代码如下:其中用了正则/owner=/.test(aa[i].href)匹配链接:

    (function () {
        var aa=$("a");
        var arr=[];
        for(var i=0;i<aa.length;i++){
          if(/owner=/.test(aa[i].href)){
          arr.push(aa[i].href);
        }
        }
        var nw = window.open();
        var i = 0;
        function op() {
            console.log(arr[i]);
            nw.location = arr[i];
            i++;
            if (i<arr.length)
                setTimeout(op, 5000);
        }
        op();
    })();

    因为我在页面上用代码访问链接时,会直接下载word。所以在启动脚本的时候,chrome会提示:想要下载多个文件?             允许就可以了。

    实际使用中没有触发验证码,终于不用一个个点击鼠标右键另存为了。

    后来发现这里有一个疑惑之处:我用的是$("a"),而不是$$("a"),竟然也能成功!

    更好的选择办法:可以不用正则表达式,用“子串匹配属性选择器”好像更方便些,如:$("a[href*=要匹配的部分URL内容]")

    补充:之前用以下代码,chrome只能打开一个新窗口

    var nw  =window.open("https://www.sohu.com","one");
    var nw1  =window.open("https://www.cnblogs.com","two");

    后来发现,浏览器为了安全考虑是不会让浏览器一次打开多个窗口的,不过如果用户需要是可以在浏览器里面进行设置的,chrome中chrome://settings/content/popups,设置为允许即可。(参考:https://blog.csdn.net/Tayshin/article/details/73614854

  • 相关阅读:
    PHP安全编程之php.ini配置
    PHP安全编程
    PHP操作Mongodb
    PHP 提高PHP性能的编码技巧以及性能优化
    HTTP 304 详解
    PHP环境变量归纳(转自网络)
    【转载】解决Apache2+PHP上传文件大小限制的问题
    机器学习六 Xgboost: 一把屠龙刀的自我修养
    机器学习五 EM 算法
    机器学习四 SVM
  • 原文地址:https://www.cnblogs.com/pu369/p/11987502.html
Copyright © 2020-2023  润新知