批量图片下载

批量图片下载

是否有适用于 Ubuntu 的程序/应用程序允许从页面下载多张图片?确切地说,我想从网站上获取一些图片

http://www.cookingforengineers.com/

有些食谱有无穷无尽的图片列表,我想把它们全部放在一起。

我尝试使用 Firefox 来使用 DownThemAll,但是 1. 我只能获得缩略图;2. 我现在使用 Chrome。

答案1

尽管不熟悉编码,但这仍然应该能满足您的要求。当然,您可以等待其他用户发布 GUI 解决方案。

只需将以下代码复制并粘贴到文本文档中,然后将其另存为dlimgs.py。我建议在主目录中创建一个名为的新文件夹bin并将其保存在那里。

#!/ust/bin/env python

import sys,urllib2,re

def main(url):
    page = getpage(url)
    start = page.find('articlebody')
    page = page[start:]
    lines = page.split('\n')
    for l in lines:
        if ('<img' in l) and ('.jpg' in l):
            matches = re.search(".*<img.*'(.*\.jpg)'.*",l)
            img = matches.group(1)
            name = img[img.rfind('/')+1:]
            print 'Downloading: '+name
            img = getpage(img)
            with open(name,'w') as f:
                f.write(img)

def getpage(url):
    user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0'
    headers = {'User-Agent':user_agent}
    req = urllib2.Request(url, None, headers);
    response = urllib2.urlopen(req)
    return response.read()

if __name__ == '__main__':
    main(sys.argv[1])

然后使用Ctrl++打开终端并执行以下操作:AltT

  1. 使用命令移动到保存的位置cd(例如cd ~/bin:)
  2. 使用以下命令调用脚本python dlimgs.py <url>

它将下载所有图像并将它们保存在~/bin文件夹中。请注意,这是专门为您在问题中提供的网站编写的,因此将跳过页面顶部的标题图像。它可能会为其他网站抛出错误。还有一点需要注意,它将覆盖目录中任何具有相同文件名的图像,~/bin因此请小心。

相关内容