我正在使用wget从网站上下载所有图像,它可以正常工作,但它存储该站点的原始层次结构以及所有子文件夹,因此图像周围出现点缀。有没有一种方法可以将所有图像下载到一个文件夹中?我目前使用的语法是:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
我正在使用wget从网站上下载所有图像,它可以正常工作,但它存储该站点的原始层次结构以及所有子文件夹,因此图像周围出现点缀。有没有一种方法可以将所有图像下载到一个文件夹中?我目前使用的语法是:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
Answers:
试试这个:
wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
这里是一些更多信息:
-nd
防止创建目录层次结构(即,没有directory)。
-r
启用递归检索。有关更多信息,请参见递归下载。
-P
设置所有文件和目录保存到的目录前缀。
-A
设置仅检索某些文件类型的白名单。字符串和模式都可以接受,并且都可以在逗号分隔的列表中使用(如上所示)。有关更多信息,请参见文件类型。
-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
:跨主机(默认情况下,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从网址列表中抓取图像)
根据手册页,-P标志为:
-P前缀--directory-prefix =前缀将目录前缀设置为前缀。目录前缀是所有其他文件和子目录将保存到的目录,即检索树的顶部。默认值为。(当前目录)。
这意味着它仅指定目的地,但指定目录树的保存位置。它不会将树压缩到一个目录中。如前所述,-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级深度为止,然后将所有文件保存在您指定的目录中。正在处理结构较深的网站。
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