如何使用 wget 从网站下载所有文件(但不是 HTML) ?

如何使用 wget和获得所有的文件从网站?

我需要所有的文件,除了网页文件,如 HTML,PHP,ASP 等。

294260 次浏览
wget -m -p -E -k -K -np http://site/path/

Man page 将告诉您这些选项的作用。

wget将只跟随链接,如果没有从索引页到文件的链接,那么 wget将不知道它的存在,因此不会下载它。也就是说。如果所有文件都在网页或目录索引中链接,那么它将会有所帮助。

筛选特定的文件扩展名:

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/

这将镜像站点,但没有 jpgpdf扩展名的文件将被自动删除。

这是为我下载的 完整的网站:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/

你可以试试:

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

我试图下载从 Omeka 的主题页面链接的 zip 文件-非常类似的任务:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: 只接受 zip 文件
  • 递归
  • -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

试试这个,对我很管用

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
wget -m -A * -pk -e robots=off www.mysite.com/

这将在本地下载所有类型的文件并从 html 文件指向它们 它会忽略机器人文件

我知道这个话题很老了,但是我在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 的问题。