【问题标题】:Wget download list of URL and set different file pathswget下载URL列表并设置不同的文件路径
【发布时间】:2013-04-15 01:37:05
【问题描述】:

我在这里读到http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/,如果我想下载多个 URL,我可以将它们保存在这样的文本文件中

$ cat > download-file-list.txt
URL1
URL2
URL3
URL4

然后像这样使用 wget

$ wget -i download-file-list.txt

但是假设我希望将每个 URL 保存在我的驱动器上它自己的目录中,如下所示:

URL1 -> Users/Downloads/Tech
URL2 -> Users/Downloads/Fashion
URL3 -> Users/Downloads/Cooking
URL4 -> Users/Downloads/News

我该如何做到这一点?是否可以手动设置文本文件中每个 URL 的目录并让 wget 读取并自动知道每个文件的保存位置?还有其他方法可以实现我的需要吗?我稍后会尝试使用 cronjobs 设置和自动下载过程。

谢谢

【问题讨论】:

    标签: wget


    【解决方案1】:

    这是一个可以执行此操作的批处理脚本,提供这样的列表:

    $ cat > urllist.txt
    URL1 file1
    URL2 file2
    URL3 file3
    URL4 file4
    
    $ while read url file; do 
        wget -c -O "$file" "$url"
    done < urllist.txt
    

    URL 中不应有空格(可以用 %20 表示),但文件名中可以​​有空格。

    【讨论】:

    • 我相信最后一行不完整:done &lt; urllist.txt
    【解决方案2】:

    那你就不能用那个方法了。最好的方法是使用 bash、perl 或 python 脚本以某种格式读取文件(可能是“URL 目录”)并将每个 url 下载到指定的目录。但是您需要在 wget 之外添加一些技巧才能获得这种行为。

    【讨论】:

    • 哦,我明白了......好吧,或者这样的事情是否可行?保存一个包含类似$ wget --mirror -p --convert-links -P ./Users/Downloads/Tech www.mozilla.org, $ wget --mirror -p --convert-links -P ./Users/Downloads/News www.gizmodo.com 内容的文本文件,并拥有一个脚本,该脚本将每一行并在终端中按顺序执行
    • 当然,这只是意味着如果要添加站点,而不是数据文件,则必须编辑脚本。
    • 是的,这正是我想我会做的。但我来自 Web 开发背景,对任何 unix 脚本一无所知。你会推荐什么对这项任务有好处。我正在研究 bash,因为它似乎是最简单的,但它能够完成我所需要的吗?
    • 这很简单,所以我会说 bash 很棒。如果您只想在没有任何计算或实际流程的情况下运行命令,那么 Bash 是很好的选择。如果你需要做大量的条件逻辑或计算,那么是时候使用脚本语言了。
    • 是的,我的要求非常低,走线,按顺序执行。完毕。为帮助干杯!
    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2017-04-22
    • 2020-10-30
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多