如何使用wget
并从网站获取所有文件?
我需要除HTML,PHP,ASP等网页文件以外的所有文件。
答案 0 :(得分:238)
要过滤特定的文件扩展名:
wget -A pdf,jpg -m -p -E -k -K -np http://site/path/
或者,如果您更喜欢长选项名称:
wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/
这会反映网站,但会自动删除没有jpg
或pdf
扩展名的文件。
答案 1 :(得分:79)
这为我下载了整个网站:
wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
答案 2 :(得分:62)
wget -m -p -E -k -K -np http://site/path/
手册页将告诉您这些选项的用途。
wget
只会跟踪链接,如果索引页面中没有指向文件的链接,则wget
将不知道其存在,因此不会下载它。即。如果所有文件都链接到网页或目录索引中,它会有所帮助。
答案 3 :(得分:22)
我试图下载从Omeka's themes page链接的zip文件 - 非常相似的任务。这对我有用:
wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
-A
:仅接受zip文件-r
:recurse -l 1
:一级深度(即,只有从此页面直接链接的文件)-nd
:不要创建目录结构,只需将所有文件下载到此目录中。使用-k
,-K
,-E
等选项的所有答案可能都无法真正理解这个问题,就像重写HTML网页以构建本地结构一样,重命名.php
个文件等。不相关。
要真正获取除 .html
之外的所有文件:
wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com
答案 4 :(得分:7)
您可以尝试:
wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/
您还可以添加:
-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar
接受特定扩展程序,或仅拒绝特定扩展程序:
-R html,htm,asp,php
或排除特定区域:
-X "search*,forum*"
如果机器人(例如搜索引擎)忽略了这些文件,您还需要添加:-e robots=off
答案 5 :(得分:5)
试试这个。它总是适合我
wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
答案 6 :(得分:5)
wget -m -A * -pk -e robots=off www.mysite.com/
这将在本地下载所有类型的文件,并从html文件指向它们 它将忽略机器人文件
答案 7 :(得分:3)
答案 8 :(得分:1)
我知道这个话题很老了,但我在 2021 年跌倒了,正在寻找一种从镜像 (http://ftp.slackware-brasil.com.br/slackware64-current/) 下载所有 Slackware 文件的方法。
阅读所有答案后,对我来说最好的选择是:
wget -m -p -k -np -R '*html*,*htm*,*asp*,*php*,*css*' -X 'www' http://ftp.slackware-brasil.com.br/slackware64-current/
为了避免像 *html*
这样的下载,我不得不使用 html
而不是 index.html.tmp
。
请原谅我复活了这个话题,我认为它可能对我以外的人有用,我的疑问与@Aniruddhsinh 的问题非常相似。
答案 9 :(得分:-1)
这对我有用:
wget -r -np http://yoursite.com/path/