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

想用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 = ;
function op() {
console.log(arr[i]);
nw.location = arr[i];
i++;
if (i<arr.length)
setTimeout(op, );
}
op();
})();

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

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

利用chrome console批量下载文件的更多相关文章

  1. 【数据下载】利用wget命令批量下载ftp文件和文件夹

    这是一个“”数据大发现”的时代,大家都在创造数据,使用数据以及分享数据,首先一步我们就需要从数据库download我们需要的数据. Ftp是一种常见的在线数据库,今天介绍一种可以批量下载文件夹的方法, ...

  2. php利用curl实现多进程下载文件类

    批量下载文件一般使用循环的方式,逐一执行下载.但在带宽与服务器性能允许的情况下,使用多进程进行下载可以大大提高下载的效率.本文介绍PHP利用curl的多进程请求方法,实现多进程同时下载文件. 原理: ...

  3. C#异步批量下载文件

    C#异步批量下载文件 实现原理:采用WebClient进行批量下载任务,简单的模拟迅雷下载效果! 废话不多说,先看掩饰效果: 具体实现步骤如下: 1.新建项目:WinBatchDownload 2.先 ...

  4. Java批量下载文件并zip打包

    客户需求:列表勾选需要的信息,点击批量下载文件的功能.这里分享下我们系统的解决方案:先生成要下载的文件,然后将其进行压缩,生成zip压缩文件,然后使用浏览器的下载功能即可完成批量下载的需求.以下是zi ...

  5. 批量下载文件web

    最近需要这个所以写了一个例子一般批量下载由以下步骤组成: 1.确定下载的源文件位置 2.对文件进行打包成临时文件,这里会用到递归调用,需要的嵌套的文件夹进行处理,并返回文件保存位置 3.将打包好的文件 ...

  6. 利用 Python 进行批量更改文件后缀

    利用 Python 进行批量更改文件后缀 代码 import os files = os.listdir('.') for file_name in files: portion = os.path. ...

  7. java批量下载文件为zip包

    批量下载文件为zip包的工具类 package com.meeno.trainsys.util; import javax.servlet.http.HttpServletRequest; impor ...

  8. PowerShell 实现批量下载文件

    简介 批量文件下载器 PowerShell 版,类似于迅雷批量下载功能,且可以破解 Referer 防盗链 源代码 [int]$script:completed = 0 # 下载完成数量 [int]$ ...

  9. js批量下载文件

    ​关于兼容性问题:   <a href="xxx.docx" target='_blank'></a>   下载文件时,这种写法是没有兼容性问题:但是下载图 ...

随机推荐

  1. 10分钟学会使用Markdown绘制UML时序图

    1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...

  2. Tomcat与WAS应用中间件差异化分析研究

    --转载 http://blog.chinaunix.net/uid-25723371-id-5759072.html 目前我们在使用的基于JAVA的提供逻辑展现应用中间件有两种,一种是以商用软件WA ...

  3. 【原创】大叔经验分享(85)ssh秘钥之创建和使用

    一 创建秘钥 1 Macbook $ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to sa ...

  4. pandas简介

  5. epoll、mysql概念及简单操作

    epoll 程序阻塞的过程 假设我们目前运行了三个进程A B C ,如果他们都在处于运行态,那就会被加到一个运行队列中 进程A正在运行socket程序 在linux中有句话,万物皆文件,socket对 ...

  6. 在SAP云平台ABAP编程环境上编写第一段ABAP程序

    距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...

  7. linux之xargs

    xargs从标准输入(stdin)中读取数据进行处理 数据以空格进行分隔 可以根据参数进行一次或多次处理,默认的处理命令是/bin/echo 空行不进行处理,会被忽略 遇到命令状态为255时,xarg ...

  8. mongodb聚合查询-aggregate

    Mongodb-aggregate 在工作中经常遇到一些mongodb的聚合操作,和mysql对比起来,mongo存储的可以是复杂的类型,比如数组,字典等mysql不善于处理的文档型结构,但是mong ...

  9. spring 时间格式问题

    注解@JsonFormat主要是后台到前台的时间格式的转换 注解@DateTimeFormat主要是前后到后台的时间格式的转换 @DateTimeFormat(pattern = "yyyy ...

  10. MySQL5.7安装详解及常见安装问题解决

    数据库安装 Python开发使用mysql数据库5.5版本以上(django2.0之后放弃mysql5.5之前的支持),在mysql版本当中5.7之前的版本都有.exe或者.msi的可执行安装文件,但 ...