如何使用Wget从URL将所有图像下载到单个文件夹中?


133

我正在使用wget从网站上下载所有图像,它可以正常工作,但它存储该站点的原始层次结构以及所有子文件夹,因此图像周围出现点缀。有没有一种方法可以将所有图像下载到一个文件夹中?我目前使用的语法是:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Answers:


194

试试这个:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

这里是一些更多信息:

-nd防止创建目录层次结构(即,没有directory)。

-r启用递归检索。有关更多信息,请参见递归下载

-P 设置所有文件和目录保存到的目录前缀。

-A设置仅检索某些文件类型的白名单。字符串和模式都可以接受,并且都可以在逗号分隔的列表中使用(如上所示)。有关更多信息,请参见文件类型


5
这实际上对我没有用。我的保存位置是“。” 并在此复制了整个网站层次结构。
Buttle Butkus 2012年

2
@ButtleButkus听起来,您需要使用accept -A选项使事情更加混乱,有关文件类型的信息,请参阅Wget文档。另外,如果要下载到当前目录,则可以删除目录前缀-P选项。如果您要下载单个文件类型,例如jpg,请使用wget -r -A.jpg http://www.domain.com。查看Wget文档提供的高级示例
2012年

添加 -nd 到上面使其工作。您还可以指定多个-A标志,例如-A "*foo*" -A "*bar*"
Yablargo 2015年

1
不要忘记使用,--level=inf或者--level=9999999999由于wget默认最大递归深度级别为,有可能破坏工作5
user619271

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd:无目录(将所有文件保存到当前目录;-P directory更改目标目录)
  • -r -l 2:递归级别2
  • -A:接受的扩展
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H:跨主机(默认情况下,wget不会从其他域或子域下载文件)
  • -p:页面必备条件(包括每页上的图像之类的资源)
  • -e robots=off:执行命令robotos=off,就像它是.wgetrc文件的一部分一样。这将关闭机械手排除功能,这意味着您将忽略robots.txt和机械手元标记(您应该了解其附带的含义,请注意)。

示例:.jpg从示例目录列表中获取所有文件:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

试试这个:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

等到它删除所有其他信息


它对我不起作用。wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
体内

5

根据手册页,-P标志为:

-P前缀--directory-prefix =前缀将目录前缀设置为前缀。目录前缀是所有其他文件和子目录将保存到的目录,即检索树的顶部。默认值为。(当前目录)。

这意味着它仅指定目的地,但指定目录树的保存位置。它不会将树压缩到一个目录中。如前所述,-nd标志实际上是这样做的。

@Jon将来描述该标志的作用将是有益的,这样我们就可以了解某些事物的工作原理。


2

建议的解决方案非常适合下载图像,如果足以将所有文件保存在您正在使用的目录中,则这些解决方案非常理想。但是,如果您希望将所有图像保存在指定目录中而不重现站点的整个层次结构树,请尝试在Jon建议的行中添加“ cut-dirs”。

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

在这种情况下,cut-dirs会阻止wget创建子目录,直到网站层次结构树的第3级深度为止,然后将所有文件保存在您指定的目录中。正在处理结构较深的网站。


-7

wget实用程序使用广泛使用的协议(例如HTTP,HTTPS和FTP)从万维网(WWW)检索文件。Wget实用程序是可免费获得的软件包,并且许可证在GNU GPL许可证下。该实用程序可以安装任何类似Unix的操作系统,包括Windows和MAC OS。这是一个非交互式命令行工具。Wget的主要特征是它的健壮性。它的设计方式使其可以在缓慢或不稳定的网络连接中工作。Wget会在网络出现问题的情况下自动从中断处开始下载。还递归下载文件。它将一直尝试直到完全检索文件。

在Linux机器上安装wget sudo apt-get install wget

在要下载文件的位置创建一个文件夹。须藤mkdir myimages cd myimages

右键单击网页,例如,如果要图像位置,请右键单击图像并复制图像位置。如果有多个图像,请按照以下步骤操作:

如果一次要从网上下载20张图像,则范围从0到19。

wget http://joindiaspora.com/img {0..19} .jpg


2
您的答案说明了什么是wget以及如何使用它来下载按顺序编号的图像...两者均与原始问题无关。
Alastair 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.