镜像http网站,不包括某些文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (113)

我想镜像一个简单的受密码保护的门户网站,我想要保持镜像和最新的一些数据。本质上,这个网站只是一个目录,列出的数据被组织到文件夹&我不关心保存html文件和其他格式化元素。但是,有一些大文件类型太大,无法下载,所以我想忽略这些。

使用wget -m -R/--reject标志几乎做我想做的,除了所有的文件被下载,然后如果他们匹配-R标志,然后他们被删除。

下面是我使用的方法wget:

wget --http-user userName --http-password password -R index.html,*tiff,*bam,*bai -m http://web.server.org/

它产生这样的输出,确认下载了一个排除的文件(index.html)(A),然后删除(B):

80.发送http请求,等待响应.401授权要求重用与web.server.org的现有连接:80.发送http请求,等待响应.200确定长度:2677(2.6k)Text/html保留:web.server.org/folder/index.html' 100%[======================================================================================================================>] 2,677 --.-K/s in 0s Last-modified header missing -- time-stamps turned off. 2012-05-23 09:38:39 (328 MB/s) -web.server.org/文件夹/index.html‘已保存2677/2677删除web.server.org/文件夹/index.html,因为它应该被拒绝。..

是否有办法迫使wget在下载文件之前拒绝它?

我是否应该考虑另一种选择?

还有,为什么我要401 Authorization Required尽管提供用户名和密码,但每个下载的文件都会出错。就像wget每次尝试连接未经身份验证,然后尝试用户名/密码。

提问于
用户回答回答于

Parameter --reject 'pattern'实际上和我一起工作WGET 1.14

例如:

wget --reject rpm http://somerpmmirror.org/site/

所有*.rpm文件根本没有下载,只有索引。

警告:如果与位于工作目录中的文件匹配,则bash可以无意地展开文件模式。请使用引号避免:

touch blahblah.rpm
# working
wget -R '*.rpm' ....
# working
wget -R "*.rpm" ....
# not working
wget -R *.rpm ....
用户回答回答于

FYI,下面是我使用它的方式:

pavuk -mode mirror -force_reget -preserve_time -progress -Robots -auth_scheme 3 -auth_name x -auth_passwd x -dsfx 'html,bam,bai,tiff,jpg' -dont_leave_site -remove_old -cdir /path/to/root -subdir /path/to/root -skip_url_pattern ’*icons*’ -skip_url_pattern '*styles*' -skip_url_pattern '*images*' -skip_url_pattern '*bam*' -skip_url_pattern '*solidstats*' http://web.server.org/folder 2>&1 | tee pavuk-日期.log

最后,wget --exclude-directories做了个小把戏:

wget --mirror --continue --progress=dot:mega --no-parent \
--no-host-directories --cut-dirs=1 \
--http-user x --http-password x \
--exclude-directories='folder/*/folder_containing_large_data*' --reject "index.html*" \
--directory-prefix /path/to/local/mirror
http://my.server.org/folder

因为--exclude-directories通配符不跨“/”,您需要非常具体地形成查询,以避免下载整个文件夹。

扫码关注云+社区

领取腾讯云代金券