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

geo*_*310 129 wget

我使用wget从网站下载所有图像,它工作正常但它存储了所有子文件夹的网站的原始层次结构,因此图像点缀.有没有办法让它将所有图像下载到一个文件夹中?我目前使用的语法是:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 189

试试这个:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
Run Code Online (Sandbox Code Playgroud)

以下是一些更多信息:

-nd阻止创建目录层次结构(即没有目录).

-r启用递归检索.有关详细信息,请参阅递归下载.

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

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

  • 这对我来说实际上并不适用.我的保存位置是"." 它复制了那里的整个网站层次结构. (5认同)
  • @ButtleButkus听起来你需要接受`-A`选项更多一些,请参阅关于[文件类型]的Wget文档(http://www.gnu.org/software/wget/manual/wget. HTML#类型-的文件).此外,如果要下载到当前目录,则可以删除目录前缀`-P`选项.如果您正在下载单个文件类型,例如只有jpg,请使用类似`wget -r -A.jpg http:// www.domain.com`的内容.查看Wget文档提供的[高级示例](http://www.gnu.org/software/wget/manual/wget.html#Advanced-Usage). (2认同)

Lri*_*Lri 127

wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
Run Code Online (Sandbox Code Playgroud)
  • -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}
Run Code Online (Sandbox Code Playgroud)
  • -H:span hosts(wget默认不下载来自不同域或子域的文件)
  • -p:页面必备条件(包括每页上的图像等资源)
  • -e robots=off:执行命令robotos=off,就好像它是.wgetrc文件的一部分一样.这将关闭机器人排除,这意味着您忽略robots.txt和机器人元标记(您应该知道它带来的含义,注意).

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

$ wget -nd -r -l 1 -A jpg http://example.com/listing/
Run Code Online (Sandbox Code Playgroud)


小智 13

我写了一个shellcript来解决多个网站的这个问题:https://github.com/eduardschaeli/wget-image-scraper

(使用wget从URL列表中搜索图像)


ore*_*ani 9

试试这个:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com
Run Code Online (Sandbox Code Playgroud)

并等到它删除所有额外信息


Mic*_*aev 5

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

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

这意味着它仅指定目标,但保存目录树的位置.它不会将树展平为一个目录.如前所述,-nd标志实际上就是这样做的.

@Jon将来描述旗帜的作用是有益的,这样我们才能理解某些东西是如何运作的.