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

想用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. 针对Quizii的基本抓包实验(Fiddler)

    本实验仅限于了解POST和GET几种常规数据获取方案的学习.简单的来说,POST就是向服务器发送数据,GET会向服务器请求数据.可以参考https://www.zhihu.com/question/2 ...

  2. c# asp.net 实现分页(pager)功能

    分页PagerHelper辅助类 using System;using System.Web; public class PagerHelper { #region 获取分页的Html代码 /// & ...

  3. Windows 32位-调试与反调试

    1.加载调试符号链接文件并放入d:/symbols目录下. 0:000> .sympath srv*d:\symbols*http://msdl.microsoft.com/download/s ...

  4. 使用jdk8 stream简化集合操作

    使用stream的前提是对lambda表达式和函数式接口有一定的了解,同时对方法引用和普通传参的区别有一定的认识. stream的三大特性:1.不存储数据2.不改变源数据3.延时执行. stream优 ...

  5. (十一)shiro与ssm整合

    所有代码在:here pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...

  6. Vue2.0+elementUI使用echarts插件

    1.npm安装echarts:     $ npm install echarts -S 2.html代码: <template> <div id="chartColumn ...

  7. React/事件系统

    React基于虚拟DOM实现了一个合成事件层,我们所定义的事件处理器会接收到一个合成事件对象的实例事件处理. 并且所有事件都自动绑定在最外层上.如果需要访问原生事件对象,可以使用nativeEvent ...

  8. iOS8中UIActionSheet弹出UIImagePickerController异常处理

    iOS8之后,UIActionSheet改父于UIAlertController.带来了一丢丢兼容性的问题. 比如在弹出的actionsheet中选择从相册选择图片或者拍照,之后弹出UIImagePi ...

  9. leetcode-55. Jump Game · Array

    题面 这个题面挺简单的,不难理解.给定非负数组,每一个元素都可以看作是一个格子.其中每一个元素值都代表当前可跳跃的格子数,判断是否可以到达最后的格子. 样例 Input: [2,3,1,1,4] Ou ...

  10. leetcode-111. 二叉树最小深度 · Tree + 递归

    题面 找出二叉树的最小深度(从根节点到某个叶子节点路径上的节点个数最小). 算法 算法参照二叉树的最大深度,这里需要注意的是当某节点的左右孩子都存在时,就返回左右子树的最小深度:如果不都存在,就需要返 ...