最近发现一个很好的网站:http://ebook.elain.org,里面有大量的技术书籍。于是想使用 wget 把整个网站都下载下来。但是 wget 对中文的 url 支持得不够好,直接使用:

  wget -m http://ebook.elain.org

下载的话,中文文件名就会乱码,比如“2010架构师大会PPT”就变成了“2010鏋舵瀯甯堝ぇ浼歅PT”。

  wget --restrict-file-name=ascii -m http://ebook.elain.org

下载的话,中文文件名会编码成URL形式,比如比如“2010架构师大会PPT”就变成了“2010%E6%9E%B6%E6%9E%84%E5%B8%88%E5%A4%A7%E4%BC%9APPT”。主要是因为在网页上,中文 UR L会以 UTF-8 来编码,而 Windows 存储文件名是用GBK编码。也就是说“2010鏋舵瀯甯堝ぇ浼歅PT”实际上是以 GBK 编码来显示的 UTF-8 编码的文件名。这样我们只要用 Python 写个编码转换器就可以了。代码如下:

import os, urllib, sys, getoptclass Renamer:input_encoding = ""output_encoding = ""path = ""is_url = Falsedef __init__(self, input, output, path, is_url):self.input_encoding = inputself.output_encoding = outputself.path = pathself.is_url = is_urldef 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:passdef 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.exe [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 = Truetry: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 = argelif opt in ("-o", "--output-encoding"):output_encoding = argelif opt in ("-p", "--path"):path = argelif opt in ("-u", "--is-url"):is_url = Truern = Renamer(input_encoding, output_encoding, path, is_url)rn.start()if __name__ == '__main__':main(sys.argv[1:])

如果 wget 是使用以下命令行来下载:

  wget --restrict-file-name=ascii -m http://ebook.elain.org

那么下载下来的文件是“2010%E6%9E%B6%E6%9E%84%E5%B8%88%E5%A4%A7%E4%BC%9APPT”形式,运行脚本时就使用以下命令:

  rename.py -i utf-8 -o gbk -p R:\ebook.elain.org -u

下载后的结果如下图。

使用 wget 整站下载相关推荐

  1. Windows中使用wget整站下载

    weget wget安装 Windows下载 点击下载   https://eternallybored.org/misc/wget/ 会跳转到wget的下载页,根据自己电脑选择下载的文件,我下载的版 ...

  2. 学习记录,linux使用wget命令实现整站下载

    引言 在Windows下有个叫做"整站下载器"的软件,可以用来抓取网站的数据下载到本地,而Linux上只需要用到我们平时最常用的命令行下载器Wget,就能完成整个网站数据的下载操作 ...

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

    一.Linux下的wget Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持H ...

  4. 橙色的商务企业网站模板 html整站下载 企业网站模板

    介绍: [橙色的商务企业网站模板]商务企业网站模板+html整站下载+企业网站模板 开发语言:PHP+Mysql 操作系统:Windows,Linux 网盘下载地址: http://kekewangL ...

  5. 有没有比较好的网页整站下载工具?

    看到好的网站就想把他收集起来为了参照学习,想找一个网页整站下载工具可以把别人的网站的前端代码包括结构完整保存下载下来研究,网上好多工具都不太好用,求知道的分享一个比较好用的.

  6. 仿hao123网址导航源码HTML整站下载

    仿hao123网址导航源码HTML整站下载 功能分类:导航            支持平台:其他        运行环境:其他 开发语言:Javascript   开发工具:其他        源码大 ...

  7. wordpress-主题商业中国总裁商业思维 培训商学院官网源码整站下载 培训商学院,教育培训官网 培训商学院整站资源

    wordpress-主题商业中国总裁商业思维 培训商学院官网源码整站下载 培训商学院,教育培训官网 培训商学院整站资源 wordpress-主题商业中国总裁商业思维

  8. 收藏 5个 整站下载工具

    利用整站下载工具可以让你快速创建垃圾站,所以颇得一些人的喜欢.不过,要防止出现版权问题被人家告上法庭才好!当然,也有的人利用整站下载工具下载网站到本地进行慢慢的欣赏.下面这些整站下载工具软件你一定会需 ...

  9. 抓图工具和整站下载工具

    网站整站下载器.rar FSCAPTURE.RAR 来自 " ITPUB博客 " ,链接:http://blog.itpub.net/11342864/viewspace-4503 ...

  10. 小飞兔整站下载如何设置特殊标签?

    小飞兔整站下载如何设置特殊标签? 为什么提供自定义标签的功能? 如何设置自定义标签? 为什么提供自定义标签的功能? 随着html5网站的快速发展,很多网站做了格式各样的特殊标签,而我们需要匹配特殊标签 ...

最新文章

  1. 干货丨卷积神经网络工作原理的直观解释
  2. WebSphere MQ 自动启动发送方通道
  3. 神策数据丨教育行业线索转化全链路解决方案
  4. 《JavaScript高级程序设计》读书笔记 ---基本概念小结
  5. 如何设置 homestead zhong redis 开机自启_CentOS安装Redis
  6. 九度OJ 1547 动态规划
  7. yum离线下载rpm包
  8. paip.脚本操作IIS启动停止站点
  9. Windows Phone 7.5 OS版本7.10.8107.79 官方更新
  10. JavaWeb 学习路线
  11. Windows 7 专业版/家庭版 装(中文)语言包
  12. python刷网易云_GitHub - a744451680/python_wangyiyun: python 网易云打卡自动刷300
  13. envi5.3处理高分二号影像数据详细过程记录
  14. 51单片机入学第八课——8*8点阵屏
  15. Python微信公众号
  16. Windows 优质软件
  17. 详细教程!手把手教你制作个人微信红包封面
  18. libgdx 图形绘制
  19. 【循环链表】猴子选大王(约瑟夫问题)
  20. Yocto:将kernel, u-boot, atf单独建库编译摒弃掉打patch方式

热门文章

  1. 苹果wifi网速慢怎么办_三步解决家里网速慢的问题
  2. chromium git下载
  3. 工作台式计算机配置单,台式电脑配置清单.doc
  4. 绕过tp路由器管理密码_TP-Link路由器管理员密码多少 TP-Link路由器管理员密码介绍【详解】...
  5. java 测试网络_java Ping操作(测试网络)
  6. 定时关机win10_巧用任务计划程序定时关机
  7. 中国管理信息化杂志中国管理信息化杂志社中国管理信息化编辑部2022年第16期目录
  8. Linux---带你区分根目录 和 家目录
  9. cesium加载天地图的卫星影像图
  10. html和css如何制作小球,雨林寒舍 | CSS3制作3D跳动的小球