【问题标题】:How to download all files (but not HTML) from a website using wget?如何使用 wget 从网站下载所有文件(但不是 HTML)?
【发布时间】:2012-02-04 00:41:16
【问题描述】:

如何使用wget并从网站获取所有文件?

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

【问题讨论】:

标签: ubuntu download wget


【解决方案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的问题非常相似。

【讨论】:

    【解决方案2】:

    过滤特定文件扩展名:

    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 扩展名的文件将被自动删除。

    【讨论】:

    • 如果你只是想下载没有整个目录架构的文件,你可以使用 -nd 选项。
    • 每个标志的含义是什么?
    • 我认为--accept 是区分大小写的,所以你必须这样做--accept pdf,jpg,PDF,JPG
    • 不确定这是否与wget 的新版本一起使用,但您必须指定--progress 类型,例如--progress=dot
    • @Flimm 你也可以使用--ignore-case 标志使--accept 不区分大小写。
    【解决方案3】:

    这为我下载了整个网站:

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

    【讨论】:

    • -e robots=off+1!这终于解决了我的问题! :) 谢谢
    • --random-wait 选项是天才 ;)
    • @izilotti 站长能查出你是不是用这种方法WGET他们的网站文件吗?
    • @whatIsperfect 绝对有可能。
    • @JackNicholsonn 网站所有者如何知道?使用的代理是 Mozilla,这意味着所有标头都将作为 Mozilla 浏览器进入,因此无法检测 wget 是否已使用?如果我错了,请纠正。谢谢
    【解决方案4】:
    wget -m -p -E -k -K -np http://site/path/
    

    手册页会告诉你这些选项的作用。

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

    【讨论】:

    • 感谢您的回复 :) 它复制了整个网站,我只需要网站中的文件(即 txt、pdf、图像等)
    【解决方案5】:
    wget -m -A * -pk -e robots=off www.mysite.com/
    

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

    【讨论】:

      【解决方案6】:

      我试图下载从Omeka's themes page 链接的 zip 文件 - 非常相似的任务。这对我有用:

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

      【讨论】:

      【解决方案7】:

      试试这个。它总是对我有用

      wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
      

      【讨论】:

        【解决方案8】:

        你可以试试:

        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

        【讨论】:

          猜你喜欢
          • 2013-12-05
          • 1970-01-01
          • 1970-01-01
          • 2018-01-03
          • 2013-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-04
          相关资源
          最近更新 更多