如何批量下载100万个直接文件URL?

如何批量下载100万个直接文件URL?

如何下载存储在文本文件中的 100 多万个文件?

我尝试了几个下载管理器,导入 URL 列表时速度很慢。目前我已经在下载大师,我也尝试过网络下载管理器(IDM)和下载器,但是有没有其他软件可以更快地处理大量URL导入和下载?

我尝试下载的文件大多是图像文件 - jpg、png、gif,每个大约 200 KB。并且每个图像文件的 URL 都存储在文本文件的新行中。

答案1

如果您安装赛格威您可以使用获得下载包含 URL 列表的文件中的所有内容。

将所有 URL 放在一个名为的文件中urls.txt,您可以运行以下命令:

wget -i urls.txt

答案2

在 Linux 中,这非常简单wget

不过我假设您是 Windows 用户。

如果是这种情况,如果您使用的是 Powershell 3 或更高版本,则可以使用 Powershell 获得类似的结果。

  1. 在记事本中创建一个 .txt 文件,其中包含完整的 URL 列表
  2. 打开 Powershell 并cd进入保存 urls.txt 文件的目录。例如cd C:\Users\jay\Documents
  3. 将以下内容粘贴到 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。希望可以帮到你!

相关内容