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代码
Mar 13 Python
Python通过websocket与js客户端通信示例分析
Jun 25 Python
使用Python获取Linux系统的各种信息
Jul 10 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python selenium文件上传方法汇总
Nov 19 Python
Python实现全角半角字符互转的方法
Nov 28 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 Python
python中K-means算法基础知识点
Jan 25 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运行速度的一些小技巧分享
2012/07/03 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
Python实现简单登录验证
2016/04/13 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
python 自动去除空行的实例
2018/07/24 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python异常处理和日志处理方式
2019/12/24 Python
postman和python mock测试过程图解
2020/02/22 Python
python爬虫如何解决图片验证码
2021/02/14 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
车工岗位职责
2013/11/26 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
运动会拉拉队口号
2014/06/09 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
班主任高考寄语
2015/02/26 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书