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实现跨文件全局变量的方法
Jul 07 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
用python与文件进行交互的方法
Mar 01 Python
pandas数据集的端到端处理
Feb 18 Python
详解Python用户登录接口的方法
Apr 17 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python的形参和实参使用方式
Dec 24 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
Python如何将模块打包并发布
Aug 30 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
python+pyhyper实现识别图片中的车牌号思路详解
Dec 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
php预定义常量
2006/12/25 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
python实现获取Ip归属地等信息
2016/08/27 Python
python dict 相同key 合并value的实例
2019/01/21 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
高考寄语大全
2014/04/08 职场文书
医院院务公开实施方案
2014/05/03 职场文书
班组建设经验交流材料
2014/05/12 职场文书
财务会计实训报告
2014/11/05 职场文书
领导工作表现评语
2015/01/04 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python