linux下面下载整个网站

转载 2015年07月09日 16:00:07
linux下可以用wget下载整个网站,而且网站链接中包含utf-8编码的中文也能正确处理。
简要方法记录如下:
wget --restrict-file-name=ascii -m -c -nv -np -k -E -p -R=exe,zip http://www.xxx.com
参数释义如下:
--restrict-file-name=ascii ,将文件名保存为ASCII格式。这样能避免utf-8文件名带来的麻烦(注:1.12版才支持ascii参数值)
-m 整站下载,mirror的缩写,是-N -r -l inf --no-remove-listing 这几个参数的快捷方式,具体详阅各自的说明
-c 续传
-nv 不显示详细的下载详情
-np don’t ascend to the parent directory.即下载的Web页面不越过后面指定的 http://www.xxx.com的范围。当然,如果你指定的是 http://www.xxx.com/aaa,则所有的web页面都要在 http://www.xxx.com/aaa下
-k 下载完成后,将页面文件中的链接转换为本地链接,便于离线浏览和制作chm等
-E 保存html/css文件时,使用合适的文件后缀。例如,在某些网站有些文件是服务器端动态生成的,虽然是css文件,但后缀并不是css,-E选项可以调整之
-p -np对页面文件做了限制,如果不加-p,则html所需的媒体文件也会受限于-np,-p则会下载html/css文件所需的所有媒体文件(图片、音频、视频等)
-R 拒绝下载的文件后缀列表,逗号分隔


至于下载到的文件的文件名变为了形如%A7这样百分号加16进制数字的形式,可以用个python程序来改变文件名:
————————————————————————————————————
import os, urllib, sys, getopt

class Renamer:
    
    input_encoding = ""
    output_encoding = ""
    path = ""
    is_url = False
    
    def __init__(self, input, output, path, is_url):
        self.input_encoding = input
        self.output_encoding = output
        self.path = path
        self.is_url = is_url
    
    def start(self):
        self.rename_dir(self.path)

    def rename(self, root, path):
        try:
            if self.is_url:
                new = urllib.unquote(path).decode(self.input_encoding).encode(self.output_encoding)
            else:
                new = path.decode(self.input_encoding).encode(self.output_encoding)
            os.rename(os.path.join(root, path), os.path.join(root, new))
        except:
            pass

    def rename_dir(self, path):
        for root, dirs, files in os.walk(path):
            for f in files:
                self.rename(root, f)

            if dirs == []:
                for f in files:
                    self.rename(root, f)
            else:
                for d in dirs:
                    self.rename_dir(os.path.join(root, d))
                    self.rename(root, d)
def usage():
    print '''This program can change encode of files or directories.
    Usage:   rename.py [OPTION]...
    Options:
        -h, --help                  this document.
        -i, --input-encoding=ENC    set original encoding, default is UTF-8.
        -o, --output-encoding=ENC   set output encoding, default is GBK.
        -p, --path=PATH             choose the path which to process.
        -u, --is-url                whether as a URL
    '''


def main(argv):
    input_encoding = "utf-8"
    output_encoding = "gbk"
    path = ""
    is_url = True
    
    try:
        opts, args = getopt.getopt(argv, "hi:o:p:u", ["help", "input-encoding=", "output-encoding=", "path=", "is-url"])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-i", "--input-encoding"):
            input_encoding = arg
        elif opt in ("-o", "--output-encoding"):
            output_encoding = arg
        elif opt in ("-p", "--path"):
            path = arg
        elif opt in ("-u", "--is-url"):
            is_url = True

    rn = Renamer(input_encoding, output_encoding, path, is_url)
    rn.start()

if __name__ == '__main__':
    main(sys.argv[1:])

————————————————————————————————————
rename.py -i utf-8 -o gbk -p <指定的下载目录> -u


文件改名方法来自于http://blog.csdn.net/kowity/article/details/6899256

Linux 如何使用 wget 下载整个网站

Linux 如何使用 wget 下载整个网站近期要去缅甸呆半个月,想顺便把 W3SCHOOL.COM 上面的 HTML/CSS/JS/PHP 教程温习一遍。但是有一个问题,缅甸的网速很慢,我们住的酒店...
  • github_37483541
  • github_37483541
  • 2017年02月09日 20:29
  • 2316

linux下常用命令wget进行整站下载

用linux下常用命令wget进行整站下载(递归下载至本地) 这个命令可以以递归的方式下载整站,并可以将下载的页面中的链接转换为本地链接。 wget加上参数之后,即可成为相当强大的下载工具。 wg...
  • taiyang1987912
  • taiyang1987912
  • 2015年01月04日 10:33
  • 4044

linux下wget如何下载整个网站,或者特定目录全部文件

需要下载某个目录下面的所有文件。命令如下 wget -c -r -np -k -L -p www.xxx.org/pub/path/ 在下载时。有用到外部域名的图片或连接。如果需要同时下载就要用-...
  • user_friendly
  • user_friendly
  • 2013年02月18日 16:13
  • 5936

wget 下载整个网站,或者特定目录

转载自:http://www.cnblogs.com/lidp/archive/2010/03/02/1696447.html 需要下载某个目录下面的所有文件。命令如下 wget -c -r ...
  • memray
  • memray
  • 2013年09月16日 23:44
  • 40847

linux下wget如何下载整个网站,或者特定目录全部文件

需要下载某个目录下面的所有文件。命令如下 wget -c -r -np -k -L -p www.xxx.org/pub/path/ 在下载时。有用到外部域名的图片或连接。如果需要同时下载就要用-...
  • climb_up
  • climb_up
  • 2013年09月30日 11:48
  • 1726

鸟哥的linux私房菜整个网站,再安装了php服务的机器上可以直接用浏览器打开

  • 2014年03月12日 10:57
  • 42.42MB
  • 下载

最好用的网络资源下载器(包括整个网站)

  • 2014年10月28日 21:06
  • 622KB
  • 下载

一个下载整个网站的文件

  • 2010年05月13日 15:05
  • 519KB
  • 下载

WebCHM整个网站下载

  • 2012年03月11日 23:50
  • 459KB
  • 下载

wget 下载整个网站,或者特定目录

转载自:http://www.cnblogs.com/lidp/archive/2010/03/02/1696447.html 需要下载某个目录下面的所有文件。命令如下 wget -c -r ...
  • memray
  • memray
  • 2013年09月16日 23:44
  • 40847
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下面下载整个网站
举报原因:
原因补充:

(最多只允许输入30个字)