解放双手:用BAT脚本构建图片、视频等文件下载链接实现批量下载

765次阅读
没有评论

热帖最近到某站上下载几张桌面壁纸图片,一个一个点击真的费劲呀。观察了下图片的命名规律,发现同一分类下不同图片名称就是自然数增长~ 趁着有时间,写个简单的 bat 脚本用来批量构建图片、视频、文档等文件下载链接,然后交给 curl 命令或者第三方批量下载工具来批量下载吧。

实现思路:批量下载链接一般形如“https://www.itylq.com/images/test/[1001-9999].jpg”,拆分一下,前后两部分为固定字符串,中间量为变量,让用户侧分别输入对应的字符串或者控制量即可。

详细代码如下:

@echo off
title 下载链接批量构造---作者:雷聪
::正文
echo.
echo 下载链接批量构造脚本
echo.
echo --------------------------------
::输入链接固定头部
echo Step1.设置链接头部固定字符串:
echo.
set /p LinkHeader=头部:
echo.
::输入链接固定尾部
echo Step2.设置链接尾部固定字符串:
echo.
set /p LinkFooter=尾部(如无则直接回车):
echo.
::输入链接变量起止量
echo Step3.设置链接变量 起始值,终止值,步长,如 2,8,2:
echo.
set /p LinkVariables=起止量(格式为 [起],止,[步],起始值和步长默认为1):
echo.
echo --------------------------------
echo.
::数据处理
::分割输入的链接变量起止量
for /f "tokens=1,2,3 delims=," %%a in ("%LinkVariables%") do (
	::截取获得起始值
	if "%%a"=="" (
		set beginNo=1
	) else (
		set beginNo=%%a
		if "%%b"=="" (
			echo "警告!您输入的数字格式有误,请使用 两个','逗号分隔数字"
			goto :bugtail
		) else if %%b LEQ %%a (
			echo %%b
			echo %%a
			echo "警告!您输入的数字大小有误,请确保 起始值<终止值" goto : bugtail ) else if %%c GEQ %%b ( echo "警告!您输入的数字顺序有误,请参考格式:起始值,终止值,步长" goto :bugtail ) else ( set endNo=%%b if "%%c"=="" ( set stepNo=1 ) else ( set stepNo=%%c ) ) ) ) echo. echo 链接预处理... echo. echo 链接格式为:%LinkHeader%[%beginNo%-%endNo%]%LinkFooter% echo. echo 链接正在批量生成... echo. ::创建links.txt文件 set TargetFile=%USERPROFILE%\Desktop\links.txt if exist %TargetFile% ( echo.>%TargetFile%
) else (
	copy nul %TargetFile%
)

::生成链接
for /l %%i in (%beginNo%,%stepNo%,%endNo%) do (
	
	echo %LinkHeader%%%i%LinkFooter% >>%TargetFile%
)
echo.
echo --------------------------------
echo.
echo "结束语:恭喜,链接批量生成完毕。"
echo.
echo --------------------------------
pause

:bugtail
echo.
echo --------------------------------
echo.
echo "结束语:完蛋鸟,脚本没有正确执行。"
echo.
pause

实现效果:运行脚本后,用户输入头部、尾部字符串,以及变量范围及步长,实现批量生成下载链接并保存到脚本当前路径下 links.txt 文件内。

解放双手:用BAT脚本构建图片、视频等文件下载链接实现批量下载
P1.bat 脚本批量运行界面及生成的下载链接文件内容示例
© 由 IT摇篮曲 提供

批量下载:使用第三方软件,比如 After Linker Downloader ,支持导入链接文件并自动批量创建下载任务。

解放双手:用BAT脚本构建图片、视频等文件下载链接实现批量下载
P2.links.txt 配合第三方下载工具 After Linker Downloader 软件实现批量下载
© 由 IT摇篮曲 提供

扩展:如果不想使用第三方下载工具,修改下脚本,在上述 bat 脚本代码“::生成链接”处使用 curl 命令也可以实现批量下载文件,如:

::curl批量下载文件
set StorePath=D:\下载库\批量下载\
for /l %%i in (%beginNo%,%stepNo%,%endNo%) do (
	::伪装UA和Referer
	curl -A "User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0" -H "Referer:https://www.itylq.com/" %LinkHeader%%%i%LinkFooter% --output %StorePath%%%i.jpg
)

curl 命令选项释义:

  • -A:用于伪造 UA 信息,有部分站点处理文件下载请求时会检测 UA 信息;
  • -H:用于伪造来源链接,部分站点设置了下载限制条件,必须是从某个站点链接/网页链接跳转过来的请求才允许下载;
  • –output:指定下载文件的存放位置及文件名称。

我不想努力了…:

 此处含有隐藏内容,请提交评论并审核通过刷新后即可查看!
正文完
 
itylq
版权声明:本站原创文章,由 itylq 2023-11-14发表,共计2445字。
转载说明:本站文章遵循CC-4.0国际许可协议,转载请注明出处(格式如“来源:IT摇篮曲www.itylq.com")。
评论(没有评论)