Python实现的批量下载RFC文档


Posted in Python onMarch 10, 2015

RFC文档有很多,有时候在没有联网的情况下也想翻阅,只能下载一份留存本地了。
看了看地址列表,大概是这个范围:
http://www.networksorcery.com/enp/rfc/rfc1000.txt
...
http://www.networksorcery.com/enp/rfc/rfc6409.txt

哈哈,很适合批量下载,第一个想到的就是迅雷……
可用的时候发现它只支持三位数的扩展(用的是迅雷7),我想要下的刚好是四位数……
郁闷之下萌生自己做一个的想法!
这东西很适合用python做,原理很简单,代码也很少,先读为快。
代码如下:

#! /usr/bin/python

'''

  File      : getRFC.py

  Author    : Mike

  E-Mail    : Mike_Zhang@live.com

'''

import urllib,os,shutil,time
def downloadHtmlPage(url,tmpf = ''):

    i = url.rfind('/')

    fileName = url[i+1:]

    if tmpf : fileName = tmpf

    print url,"->",fileName

    urllib.urlretrieve(url,fileName)

    print 'Downloaded ',fileName    

    time.sleep(0.2)

    return fileName

    

# http://www.networksorcery.com/enp/rfc/rfc1000.txt

# http://www.networksorcery.com/enp/rfc/rfc6409.txt

if __name__ == '__main__':

    addr = 'http://www.networksorcery.com/enp/rfc'    

    dirPath = "RFC"

    #startIndex = 1000

    startIndex = int(raw_input('start : '))

    #endIndex = 6409

    endIndex = int(raw_input('end : '))

    if startIndex > endIndex : 

        print 'Input error!'        

    if False == os.path.exists(dirPath):

        os.makedirs(dirPath)    

    fileDownloadList = []

    logFile = open("log.txt","w")

    for i in range(startIndex,endIndex+1):

        try:            

            t_url = '%s/rfc%d.txt' % (addr,i)

            fileName = downloadHtmlPage(t_url)

            oldName = './'+fileName

            newName = './'+dirPath+'/'+fileName

            if True == os.path.exists(oldName):

                shutil.move(oldName,newName)

                print 'Moved ',oldName,' to ',newName

        except:

            msgLog = 'get %s failed!' % (i)

            print msgLog

            logFile.write(msgLog+'\n')

            continue

    logFile.close()

除了RFC文档,这个程序稍加修改也可以做其它事情:比如批量下载MP3、电子书等等。

好,就这些了,希望对你有帮助。

Python 相关文章推荐
浅析Python中的join()方法的使用
May 19 Python
python 捕获shell脚本的输出结果实例
Jan 04 Python
python实现外卖信息管理系统
Jan 11 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
python实现的自动发送消息功能详解
Aug 15 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 Python
python切片作为占位符使用实例讲解
Feb 17 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
Python开发五子棋小游戏
May 02 Python
Python制作CSDN免积分下载器
Mar 10 #Python
Python Tkinter GUI编程入门介绍
Mar 10 #Python
Python格式化css文件的方法
Mar 10 #Python
Python将xml和xsl转换为html的方法
Mar 10 #Python
Python写的Tkinter程序屏幕居中方法
Mar 10 #Python
Python生成随机密码
Mar 10 #Python
Python获取单个程序CPU使用情况趋势图
Mar 10 #Python
You might like
php 字符串函数收集
2010/03/29 PHP
php数据库抽象层 PDO
2011/05/07 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
Python开发编码规范
2006/09/08 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
科学育儿宣传标语
2014/10/08 职场文书
2015元旦节寄语
2014/12/08 职场文书
2015年检验科工作总结
2015/04/27 职场文书
大学生活委员竞选稿
2015/11/21 职场文书