如何将提取的URL数据流通过管道导入wget实现批量下载?
完整单行批量下载命令实现
没问题,直接把提取到的URL流式传给wget就行,这里给你整理好完整的单行命令,还附带一些实用的优化参数:
基础版命令
tac FILE | sed -n -e 's/^.*URL: //p' | wget -i -
各部分解释:
tac FILE:将目标文件的内容按行倒序输出(如果下载顺序对你不重要,换成cat FILE也完全可以)sed -n -e 's/^.*URL: //p':只提取每行中URL:之后的内容,过滤掉无关文本,只输出有效的URL行wget -i -:-i参数告诉wget从指定来源读取URL列表,-代表从标准输入(也就是前面管道传过来的内容)读取
进阶优化版(推荐)
如果是下载缩略图,建议加几个wget参数提升体验:
tac FILE | sed -n -e 's/^.*URL: //p' | wget -i - -P ./thumbnails/ --tries=3 --content-disposition
新增参数说明:
-P ./thumbnails/:指定所有缩略图下载到当前目录下的thumbnails文件夹(会自动创建不存在的目录)--tries=3:遇到网络错误时重试3次,避免因临时波动导致下载失败--content-disposition:让wget优先使用服务器返回的文件名保存(有些缩略图URL带一堆参数,这个参数能帮你拿到更干净的文件名)
内容的提问来源于stack exchange,提问作者Atomiklan
相关产品推荐
相关产品推荐

