不需更多的工具,在cmd中便可以用代码下载文件。一个可以,批量(成千上万)当然也就不成问题啦。(强行凹任务~)
我是开工线
一、在cmd中打开powershell
输入powershell 回车,即进入powershell,使用exit可以退出powershell模式。
红色剪头指示输入了命令
黄色箭头表明输入命令后,程序进入了 PS状态。
二、查看和修改执行策略
默认的powershell是不能执行任何脚本的。ps状态下用 get-executionpolicy 可以查看执行策略;使用 set-executionpolicy remotesigned更改计算机的执行策略。
1、查看当前执行策略
如黄色箭头所示,当前是限制的。
2、更改执行策略
修改执行策略后,查看得知变成了“remotesigned”
三、设置远程用户
$client = new-object System.Net.WebClient
四、下载
下载的模式是:
$client.DownloadFile('目标下载地址','存放文件的地址及文件名.对应的扩展名')
譬如打开了一个网页
(https://mp.weixin.qq.com/s?src=11×tamp=1590847202&ver=2370&signature=oyShqSYX6VmLbmZMwZ9Mt4tlNcNp4lqjQz*KWqaX4Xbsqzjeb1oC1VP8y*JORsOmjiJgEEkkoUNoPfEM13dMi8*o-1wkecNJS3BAIVnkq1E=&new=1)
若我们想下载这篇文章中的上图截图中的这个包含身份证的图片。
1) 我们尝试在网页中右键保存
我们发现保存的文件是 .webp格式,用电脑的自带的图片查看器和画图软件是看不了的。(它可以用浏览器打开。)
2) 使用cmd命令行下载
2.1) 下载该网页
$client.DownloadFile('https://mp.weixin.qq.com/s?src=11×tamp=1590847202&ver=2370&signature=oyShqSYX6VmLbmZMwZ9Mt4tlNcNp4lqjQz*KWqaX4Xbsqzjeb1oC1VP8y*JORsOmjiJgEEkkoUNoPfEM13dMi8*o-1wkecNJS3BAIVnkq1E=&new=1','1.txt')
我们去电脑中黄色线标出的位置可以发现下载了一个1.txt文件
我们使用 editPlus 软件打开,里面是这样的:
2.2) 下载图片
对比网页文字和 1.txt中的文字信息,我们确定目标图片的链接
从链接内容我们知道这个图片是 .jpg 格式
a. 目的文件的扩展名完整
$client.DownloadFile('https://mmbiz.qpic.cn/mmbiz_jpg/O9F3NTo58yqeXv4WBxSia0IF4NCNDMR3TGOicQUPNUFiciaeEhROgWrIA0l69jYcDIz0Ky83tKhIO5yiaBQ098P6RpA/640','1.jpg')
我们发现多了一个 1.jpg 文件,正是我们的目的图片:
b. 目的文件的扩展名不写
$client.DownloadFile('https://mmbiz.qpic.cn/mmbiz_jpg/O9F3NTo58yqeXv4WBxSia0IF4NCNDMR3TGOicQUPNUFiciaeEhROgWrIA0l69jYcDIz0Ky83tKhIO5yiaBQ098P6RpA/640','1')
这时,就是要自己选择打开的程序,结果是一样的:
五、更改复原执行策略为限制,并查看
set-executionpolicy restrictedget-executionpolicy
六、退出
使用 exit 退出PS状态,然后继续用 exit 退出cmd。
七、批量下载
若想批量(譬如有成千上万的目标下载地址),可以构建脚本.ps1(注意最后字符是数字1)文件。但是必须得开启执行脚本执行策略。设置好后,cmd里运行脚本时,使用 powershell -f .ps1文件,或者在PS 状态下直接运行 .ps1文件。
注意,当设定的文件名中有不合理的符号(:“”等)时,那条下载命令就会出错提示且那条下载将被忽略
构建脚本
可以直接修改文本文件的后缀名为 .ps1,得到脚本文件。
运行
三个图片1秒钟全部下载
完工
法无定法,善御为王。