【发布时间】:2011-06-03 21:09:48
【问题描述】:
我正在使用 wget 从网站下载所有图像,它工作正常,但它存储了网站的原始层次结构以及所有子文件夹,因此图像散布在各处。有没有办法让它将所有图像下载到一个文件夹中?我现在使用的语法是:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
【问题讨论】:
标签: wget
我正在使用 wget 从网站下载所有图像,它工作正常,但它存储了网站的原始层次结构以及所有子文件夹,因此图像散布在各处。有没有办法让它将所有图像下载到一个文件夹中?我现在使用的语法是:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
【问题讨论】:
标签: wget
试试这个:
wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
这里有更多信息:
-nd 阻止创建目录层次结构(即no directories)。
-r 启用递归检索。请参阅Recursive Download 了解更多信息。
-P 设置所有文件和目录保存到的目录前缀。
-A 设置白名单以仅检索某些文件类型。接受字符串和模式,并且两者都可以在逗号分隔的列表中使用(如上所示)。请参阅Types of Files 了解更多信息。
【讨论】:
-A 选项来解决更多问题,请参阅有关types of files 的Wget 文档。此外,如果您正在下载到当前目录,您可以删除目录前缀 -P 选项。如果您正在下载单一文件类型,例如仅 jpg,请使用 wget -r -A.jpg http://www.domain.com 之类的内容。查看 Wget 文档提供的advanced examples。
-nd 使其工作。您还可以指定多个 -A 标志,例如 -A "*foo*" -A "*bar*"
--level=inf 或--level=9999999999,因为wget 可能会破坏作业,因为默认的最大递归深度级别为5。
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: span hosts(wget默认不下载不同域或子域的文件)-p:页面必备(包括每页上的图片等资源)-e robots=off:执行命令robotos=off,就好像它是.wgetrc 文件的一部分一样。这会关闭机器人排除,这意味着您将忽略 robots.txt 和机器人元标记(您应该知道这带来的影响,小心)。示例:从示例目录列表中获取所有 .jpg 文件:
$ wget -nd -r -l 1 -A jpg http://example.com/listing/
【讨论】:
我为多个网站写了一个解决这个问题的shellscript:https://github.com/eduardschaeli/wget-image-scraper
(使用 wget 从 url 列表中抓取图像)
【讨论】:
试试这个:
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/
根据手册页,-P 标志是:
-P 前缀 --目录前缀=前缀 将目录前缀设置为前缀。目录前缀是 将保存所有其他文件和子目录的目录 to,即检索树的顶部。默认值为 . (这 当前目录)。
这意味着它只指定目标,但指定保存目录树的位置。 它不会将树扁平化到一个目录中。如前所述,-nd 标志实际上就是这样做的。
@Jon 将来描述标志的作用将是有益的,以便我们了解某些东西是如何工作的。
【讨论】:
建议的解决方案非常适合下载图像,如果足以让您将所有文件保存在您正在使用的目录中。 但是如果你想把所有的图片都保存在一个指定的目录中,而不是复制整个网站的层次树,试着在 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 级深度,将所有文件保存在您指定的目录中。您可以添加更多 'cut-dirs' 更高如果您正在处理具有深层结构的网站,则为数字。
【讨论】:
wget 实用程序使用 HTTP、HTTPS 和 FTP 等广泛使用的协议从万维网 (WWW) 检索文件。 Wget 实用程序是免费提供的软件包,许可证在 GNU GPL 许可证下。该实用程序可以安装任何类 Unix 操作系统,包括 Windows 和 MAC OS。它是一个非交互式命令行工具。 Wget 的主要特点是它的健壮性。它的设计方式使其可以在缓慢或不稳定的网络连接中工作。如果出现网络问题,Wget 会自动从中断的地方开始下载。还递归下载文件。它会一直尝试直到文件被完全检索到。
在linux机器上安装wget sudo apt-get install wget
创建要下载文件的文件夹。 sudo mkdir myimages cd myimages
右键单击网页,例如,如果您想要图像位置,请右键单击图像并复制图像位置。如果有多个图像,请按照以下说明操作:
如果一次要从网络下载 20 张图片,范围从 0 到 19。
wget http://joindiaspora.com/img{0..19}.jpg
【讨论】: