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的id()函数解密过程
Dec 25 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
python numpy实现rolling滚动案例
Jun 08 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
Python访问Redis的详细操作
Jun 26 Python
python使用BeautifulSoup 解析HTML
Apr 24 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
2016/02/19 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
Python的Flask框架的简介和安装方法
2015/11/13 Python
python编写Logistic逻辑回归
2020/12/30 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python__name__原理及用法详解
2019/11/02 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
马智宇婚礼主持词
2014/03/22 职场文书
老师对学生的评语
2014/04/18 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
就业意向书范本
2015/05/11 职场文书
答辩状格式范本
2015/05/22 职场文书
教育读书笔记
2015/07/02 职场文书