【问题标题】:Batch download with two ranges with wget使用 wget 批量下载两个范围
【发布时间】:2012-08-21 15:45:23
【问题描述】:

我有一个 PHP 图片库,里面有大约 20000 个照片文件。我想在自己的服务器上备份图像,但这是我的 url 问题;

http://photos.blabla.net/photo.php?g=XX&p=YY

XX 是画廊编号,YY 是照片编号。如果提供的画廊编号错误,则无法访问这些照片。所以我想创建一个批量下载,例如。;

http://photos.blabla.net/photo.php?g=[1:2000]&p=[1:20000]

如何在 shell 帐户中使用 wget 或 curl 或任何其他方式完成此操作。甚至任何 Windows 解决方法都将不胜感激。

非常感谢。

【问题讨论】:

    标签: curl download wget


    【解决方案1】:

    单独使用wget 无法做到这一点。

    在几行 Python 中将其作为子进程运行就可以解决问题(理论上):

    import subprocess
    
    g=1
    p=1
    
    while g <= 2000:
        while p <= 20000:
            subprocess.Popen(['wget', '-A jpg', 'http://photos.blabla.net/photo.php?g='+g+'&p='+p+''])
            p = p+1
        g = g+1
        p = 1
    

    【讨论】:

      【解决方案2】:

      Python 脚本总是很好。但是如果你不想写额外的脚本,在 bash 中使用一行命令:

      for g in {1..2000}; do for p in {1..20000}; do wget http://photos.blabla.net/photo.php?g=$g&p=$p; done done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多