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多线程操作实例
Nov 21 Python
python中字符串前面加r的作用
Jun 04 Python
python实现RSA加密(解密)算法
Feb 17 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
python常用运维脚本实例小结
Feb 14 Python
python实现批量转换图片为黑白
Jun 16 Python
python实现扫雷游戏的示例
Oct 20 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Python实现打乒乓小游戏
Sep 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
利用Python获取操作系统信息实例
2016/09/02 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Django之form组件自动校验数据实现
2020/01/14 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
python如何修改文件时间属性
2021/02/05 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
信息工程学院毕业生推荐信
2013/11/05 职场文书
商业门面租房协议书
2014/11/25 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
Python 如何安装Selenium
2021/05/06 Python