如何下载存储在文本文件中的 100 多万个文件?
我尝试了几个下载管理器,导入 URL 列表时速度很慢。目前我已经在下载大师,我也尝试过网络下载管理器(IDM)和下载器,但是有没有其他软件可以更快地处理大量URL导入和下载?
我尝试下载的文件大多是图像文件 - jpg、png、gif,每个大约 200 KB。并且每个图像文件的 URL 都存储在文本文件的新行中。
答案1
答案2
在 Linux 中,这非常简单wget
不过我假设您是 Windows 用户。
如果是这种情况,如果您使用的是 Powershell 3 或更高版本,则可以使用 Powershell 获得类似的结果。
- 在记事本中创建一个 .txt 文件,其中包含完整的 URL 列表
- 打开 Powershell 并
cd
进入保存 urls.txt 文件的目录。例如cd C:\Users\jay\Documents
- 将以下内容粘贴到 Powershell 窗口中:
Get-Content urls.txt | ForEach-Object {Invoke-WebRequest $_ -OutFile $(Split-Path $_ -Leaf)}
答案3
如果您追求效率,在 PowerShell 中运行一些作业可能是最好的方法之一,但它需要一些脚本专业知识。
我用一百万条记录填充了一个文件,然后定时执行命令来读回它,耗时 13.5 秒(我有一个标准的 7,200RPM HDD)。
$down = New-Object "System.Net.WebClient"
Get-Content "C:\YourFile.txt" | Foreach-Object {
$down.DownloadFile($_, $_.Split("\")[-1])
}
这只是一个简单的单线程示例,但如果时间紧迫,它将在后台愉快地运行。否则,您可以手动或以编程方式拆分文件,然后将其用于Start-Job { //code here// }
每个部分。
当然,这完全取决于您的文件的格式以及您需要如何保存它们等等,但一切在 PowerShell 中都是可能的。
答案4
有一个名为“Mass Download”的 Windows 小程序,它多次帮助了我很多:http://www.softpedia.com/get/Internet/Download-Managers/Mass-Download.shtml。希望可以帮到你!