Web scraping wget,递归下载所有JPEG作品,仅在网站主页上下载

Web scraping wget,递归下载所有JPEG作品,仅在网站主页上下载,web-scraping,jpeg,wget,Web Scraping,Jpeg,Wget,我正在使用从网站下载所有JPEG 我搜索了很多,应该是这样的: wget -r -nd -A jpg "http://www.hotelninfea.com" 这应该递归地-r下载文件jpeg-A jpg,并将所有文件存储在一个目录中,而无需重新创建网站目录树-nd 运行此命令仅从网站主页下载JPEG,而不是从所有网站下载整个JPEG 我知道jpeg文件可能有不同的扩展名(jpg、jpeg)等等,但事实并非如此,也没有任何robots.txt限制 如果我从上一个命令中删除过滤器,它将按预期工

我正在使用从网站下载所有JPEG

我搜索了很多,应该是这样的:

wget -r -nd -A jpg  "http://www.hotelninfea.com"
这应该递归地
-r
下载文件jpeg
-A jpg
,并将所有文件存储在一个目录中,而无需重新创建网站目录树
-nd

运行此命令仅从网站主页下载JPEG,而不是从所有网站下载整个JPEG

我知道jpeg文件可能有不同的扩展名(jpg、jpeg)等等,但事实并非如此,也没有任何robots.txt限制

如果我从上一个命令中删除过滤器,它将按预期工作

wget -r -nd "http://www.hotelninfea.com"
这发生在Lubuntu 16.04 64位,wget 1.17.1上


这是一个bug还是我误解了什么?

我怀疑这是因为您提到的主页包含了表单
中其他页面的链接http://.../something.php
,即存在显式扩展。然后,选项
-A jpeg
具有从遍历过程中删除这些页面的“副作用”

在这种特殊情况下,也许有点肮脏的解决方法是这样的:

wget -r -nd -A jpg,jpeg,php  "http://www.hotelninfea.com" && rm -f *.php

i、 例如,只下载必要的额外页面,然后在
wget
成功终止时删除它们。

ewcz anwer为我指明了正确的方向,
--accept acclist
参数具有双重作用,它定义了文件保存规则和以下链接的规则

通过深入阅读,我发现了这一点

如果指定了“-adjust extension”,则本地文件名可能会附加“.html”。如果使用'-E-A.php'调用Wget,则会接受诸如'index.php'之类的文件名,但下载时将命名为'index.php.html',不再匹配,因此文件将被删除

所以你可以这样做

wget -r -nd -E -A jpg,php,asp "http://www.hotelninfea.com"
当然,网站管理员也可以使用

所以我认为最健壮的解决方案应该是bash脚本之类的东西 像

网站=”http://www.hotelninfea.com"
DEST_DIR=“”
image|urls=`wget-nd--spider-r“$WEBSITE”2>&1 | grep'^--''awk'{print$3}'| grep-i'\.\(jpeg\| jpg\)'`
对于$image\u url中的image\u url;做
DESTFILE=“$DEST_DIR/$RANDOM.jpg”
wget“$image\u url”-O“$DESTFILE”
完成
--spider
wget不会下载页面,只需检查页面是否存在
$RANDOM
向操作系统请求一个随机数