如何获取HTTPS目录列表生成txt文件供aria2c使用?
生成HTTPS目录列表TXT文件的可行方法
方法1:利用wget生成并提取链接
wget的蜘蛛模式可以只遍历目录结构不下载文件,刚好用来生成aria2c需要的链接列表:
# 爬取目录所有链接并保存日志 wget --spider --recursive --no-parent --level=inf --output-file=raw_list.txt https://physionet.org/files/mimic3wdb-matched/1.0/ # 从日志中提取有效文件链接 awk '/^--/ && /https/ {print $3}' raw_list.txt > aria2_links.txt
参数说明:
--spider:蜘蛛模式,仅爬取链接不下载内容--recursive:递归遍历所有子目录--no-parent:禁止爬取上级目录--level=inf:无限制遍历所有深度的子目录
方法2:curl结合文本处理工具提取链接
如果wget不可用,用curl获取页面源码后直接提取链接:
curl -s https://physionet.org/files/mimic3wdb-matched/1.0/ | \ grep -E 'href="([^"]+\.[^"]+)"' | \ sed 's/href="//;s/"//' | \ awk '{print "https://physionet.org/files/mimic3wdb-matched/1.0/"$0}' | \ grep -v '^\.\.' > aria2_links.txt
步骤说明:
curl -s:静默获取目录页面源码grep:筛选带后缀的文件链接sed:移除链接的href="和闭合引号awk:补全完整URL前缀grep -v:排除上级目录的../链接
方法3:修复lftp的证书错误继续使用
如果偏好lftp,解决证书问题有两种方式:
方式A:指定系统证书路径(推荐,安全)
lftp -e "set ssl:ca-file /etc/ssl/certs/ca-certificates.crt; mirror --list -o raw_list.txt https://physionet.org/files/mimic3wdb-matched/1.0/; quit" # 提取链接 awk '/^[0-9]/ {print $NF}' raw_list.txt > aria2_links.txt
方式B:临时禁用证书检查(不推荐,仅应急)
lftp -e "set ssl:verify-certificate no; mirror --list -o raw_list.txt https://physionet.org/files/mimic3wdb-matched/1.0/; quit" # 提取链接 awk '/^[0-9]/ {print $NF}' raw_list.txt > aria2_links.txt
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

