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

想用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. ASP.NET Core 过滤器

    继承Attribute,IActionFilter实现自己的过滤器类,并且在Startup,mvc服务中注入. 全局都会过滤,在任意一个controller,action执行前和执行后都会过滤一次 通 ...

  2. POSIX异步I/O接口使用

    POSIX1003.1b 实时扩展协议规定的标准异步 I/O 接口,即 aio_read 函数. aio_write 函数.aio_fsync 函数.aio_cancel 函数.aio_error 函 ...

  3. springboot + quartz

    在这里我单独整理对定时任务的使用.之前觉得用@Scheduled这个注解就可以解决,后来发现,定时任务比较多时,且时间集中在某个时间段,或者执行的时间间隔比较短时,多个任务执行就会依次执行,这就导致任 ...

  4. c# 实体类转XML

    /// <summary> /// 将实体类转换成XML /// </summary> /// <typeparam name="T">< ...

  5. .NET Core 使用ModelBinder去掉所有参数的空格

    一.前言 通过各种姿势搜索都没搜到这方面的,唯一找到一个比较符合的,但是只适合简单类型,而且代码还没贴全,心累.. 然后查看官网和源码之后,发现继承并实现 IModelBinder和IModelBin ...

  6. 在函数作用域嵌套下使用this

    var myObj = {    specialFunction: function () {        console.log("specialFunction.");   ...

  7. Hackthebox--------irked

    菜鸟一枚,大佬轻喷!! Web页面就一张表情图和一句IRC is almost working!(是irc服务么??!!) 查看图片信息,貌似图片没这么简单.... 果然没这么简单,不行,得想办法得到 ...

  8. restTemplate源码解析(五)处理ClientHttpResponse响应对象

    所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们执行了ClientHttpRequest与服务端进行交互.并返回了一个 ...

  9. springboot启动流程(八)ioc容器refresh过程(下篇)

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 上一篇文章,我们知道了解析过程将从解析main方法所在的主类开始.在文章的最后我们稍微看 ...

  10. AI 公司与比赛

    科大讯飞 网站:https://www.iflytek.com/ 比赛:http://challenge.xfyun.cn/2019/ AI 大学:https://www.aidaxue.com/ 华 ...