一尘不染

使用Curl命令行实用程序并行下载

linux

我想从网站上下载一些页面,并成功地使用了它,curl但是我想知道是否curl像大多数下载管理器一样一次一次下载多个页面,这会加快速度。是否可以在curl命令行实用程序中执行此操作?

我正在使用的当前命令是

curl 'http://www...../?page=[1-10]' 2>&1 > 1.html

在这里,我从1到10下载页面,并将它们存储在名为的文件中1.html

另外,是否有可能curl将每个URL的输出写入单独的文件say URL.html,其中URL正在处理的页面的实际URL 在哪里。


阅读 348

收藏
2020-06-07

共1个答案

一尘不染

好吧,curl这只是一个简单的UNIX进程。您可以使许多curl进程并行运行并将它们的输出发送到不同的文件。

curl可以使用URL的文件名部分来生成本地文件。只需使用-O选项(man curl有关详细信息)。

您可以使用以下内容

urls="http://example.com/?page1.html http://example.com?page2.html" # add more URLs here

for url in $urls; do
   # run the curl job in the background so we can start another job
   # and disable the progress bar (-s)
   echo "fetching $url"
   curl $url -O -s &
done
wait #wait for all background jobs to terminate
2020-06-07