不写一行代码,利用常用工具和软件批量下载URL资源
有时候会遇到这种情况:想从某个网站下载一批东西,目标URL是比较规整的,而且结构都一样(仅某些字段不同)。但又懒得开IDE专门写个脚本去弄,今天就和大家分享一下,如何利用手边常用的软件和工具,不用写一行代码或者脚本,就能完成这项工作。
需要的软件工具有:正则表达式工具、WGET(或者CURL)、EXCEL、记事本。
你看,并没有用到任何开发语言和脚本语言嘛。
一、获取下载索引页代码
首先需要分析一下下载索引页URL的规律,其点两页就能发现,仅有最后的PAGE参数内容不同,单调递增。然后再找到最后一页的页面(本例里是71)。

现在把前面固定的部分提取出来(直到末尾的”page=“),复制到EXCEL里的第一列,然后把参数值放到第二列。

然后对第二列向下进行填充,规律是单调递增,直到最末页码。然后把左边复制成同样数量。

最终结果:

然后把这个表格全部复制到记事本(notepad.exe)里。

字段(原本的表格列)之间会被\t(tab)分隔,只要替换成空字符(删除)就行了。

这样我们就得到了完整的索引页下载列表。如果变量部分在链接的中间也不怕,反正URL参数顺序是可以调换的,挪到最后即可。实在不行也可以在表格后面补一列来补全。人要学会举一反三嘛。

把它丢给wget去搞定就行了。

这样我们就得到了包含了最终下载目标的所有的索引页的网页内容。

二、分析、提取并构造最终下载目标列表
有了索引页的代码,我们下一步的工作就是将最终下载目标从索引页代码里批量提取出来。
通过对比实际链接和索引页代码的内容,我发现最终下载目标的URL里的关键部分已经包含在索引页代码里,提取出来之后前后补全链接其他部分即可。

这个工具是我自己写的哈,用正则表达式处理文本用的。以后有空会做一个命令行版本。
这里有一个小技巧,就是提取关键数据的时候前后可以留一点尾巴,补全链接的时候可以用。在本例里我就留了前面的冒号和后面的斜杠。补全链接的时候分别替换成链接前缀和链接后缀就OK了。注意一定不能留前后相同的,也不能和关键内容重复。如果实际情况不允许的话,可以继续用上文介绍的EXCEL表格的方式批量补全链接。
由于所有的索引页代码结构完全一样,所以用相同的正则就能全部提取出来。我开发的这个工具有一个批量提取的功能,我相信其他正则表达式工具也都有类似的功能。





(为了演示,没有拿全部的71个文件)
现在打开刚刚生成的列表文件,将预留的”尾巴“替换成真实URL的前后部分。


这样,我们就得到了干净的下载列表。

然后你就可以把这个列表拿到一个网速比较好的机器上,继续交给wget就OK了。

搞定,收工
不写一行代码,利用常用工具和软件批量下载URL资源的更多相关文章
- 推荐一款最强Python自动化神器!不用写一行代码!
搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium.结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人 ...
- 微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及脚本录制
一.前言 半年前,偶然在视频号刷到某机构正在直播讲解Playwright框架的使用,就看了一会,感觉还不错,便被种草,就想着自己有时间也可以自己学一下,这一想着就半年多过去了. 读到这,你可能就去百度 ...
- 快速开发框架(FDMS)新增1000个对外接口都不须要手写一行代码
一个大型系统难免会跟其它系统有数据交换,这里就要提供数据接口给外部系统. 曾经在一家智能终端设备的公司上班.那段时间的主要工作就是写接口.接口须要与手机.手持设备.系统管理软件等进行数据交换.总结了一 ...
- 如何利用efetch从NCBI中批量下载数据?
目录 找序列 下序列 假设我要从NCBI中下载全部水稻的mRNA序列,如何实施? 找序列 第一步,肯定是找到相关序列. 我从ncbi taxonomy进入,搜索oryza.因为要搜索mRNA核酸序列, ...
- 微软最强 Python 自动化工具开源了!不用写一行代码!
1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python 它支持主流的浏览器,包含:Chrome.Firefox.Safari.Microsoft E ...
- django2.0再写一行代码
基础 @LTS长期支持 @django-admin startproject xxx python manage.py runserver python manage.py startapp xxx ...
- NGUI 不写一行代码实现翻拍效果
正面UI添加一个TweenRotation组件,取消掉Active状态 ,To参数改成0,90,0) 背面UI添加一个TweenRotation组件,取消掉Active状态, From参数改成0,27 ...
- 瞧一瞧,看一看呐,用MVC+EF快速弄出一个CRUD,一行代码都不用写,真的一行代码都不用写!!!!
瞧一瞧,看一看呐用MVC+EF快速弄出一个CRUD,一行代码都不用写,真的一行代码都不用写!!!! 现在要写的呢就是,用MVC和EF弄出一个CRUD四个页面和一个列表页面的一个快速DEMO,当然是在不 ...
- 一行代码让你的项目轻松使用Dapr
介绍 Dapr简化了云原生开发,让开发可以把焦点放在应用的业务逻辑上,从而让代码简单.可移植,那作为一个.Net开发者,我们也希望项目可以快速用上dapr,那究竟应该如何做呢? Dapr提出了Side ...
随机推荐
- MongoDB优化与一些需要注意的细节
这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方. 1. 系统参数及mongo参数设置 mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不 ...
- Filter、Listener 学习总结
今天我们来介绍 Filter.Listener 这两个模块一些简单的知识和应用,接下来我们开始我们的正题 ! 1. Filter(过滤器) 1.1 对 Servlet 容器调用 Servlet 的过程 ...
- Android破解学习之路(二)——Android游戏 滚动的天空破解
经过上一期的破解教程,相信大家跟我一样都是对破解是初入门,我们破解的目的是什么? 赚钱吗?百度上一大堆破解版的应用,破解的人有赚到钱吗?实实在在的说,其实也是方便自己而已. 玩个游戏,感觉过不去了,来 ...
- hdu 1233 还是畅通project(kruskal求最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- [基础规范]JavaBeans规范
本文来自维基百科:http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions JavaBeans是Java语言中能够反复使用的软件组件,它们 ...
- Jenkins具体安装与构建部署使用教程
Jenkins是一个开源软件项目.旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作,功能包含:1.持续的软件版本号 ...
- 为WebClient增加Cookie的支持
我们经常会在应用程序中使用到WebClient模拟访问网站资源并且进行处理,如果多次访问之间我们希望为他们保存Cookie,换句话说,第一个请求产生的Cookie能自动带到第二个请求的话,可以通过自定 ...
- Intellij IDEA 4种配置热部署的方法
热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码. 第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源 菜单Run -> EditConfiguration , 然后 ...
- java做成windows服务,电子秤例子,开机自动启动
使用Java Service Wrapper工具制作 1.windows32位下载地址 https://sourceforge.net/projects/wrapper/files/ 2.window ...
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ HTTP请求
POST/GET请求--常见请求方式处理