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简单网络编程示例【客户端与服务端】
May 26 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
python的help函数如何使用
Jun 11 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
python 将html转换为pdf的几种方法
Dec 29 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
Python中glob库实现文件名的匹配
Jun 18 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
js opener的使用详解
2014/01/11 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
高一生物教学反思
2014/01/17 职场文书
小区门卫值班制度
2014/01/24 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
企业法律事务工作总结
2015/08/11 职场文书
祝酒词范文
2015/08/12 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
施工安全协议书
2016/03/22 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python