Python實(shí)現(xiàn)的批量下載RFC文檔
RFC文檔有很多,有時(shí)候在沒有聯(lián)網(wǎng)的情況下也想翻閱,只能下載一份留存本地了。
看了看地址列表,大概是這個(gè)范圍:
http://www.networksorcery.com/enp/rfc/rfc1000.txt
...
http://www.networksorcery.com/enp/rfc/rfc6409.txt
哈哈,很適合批量下載,第一個(gè)想到的就是迅雷……
可用的時(shí)候發(fā)現(xiàn)它只支持三位數(shù)的擴(kuò)展(用的是迅雷7),我想要下的剛好是四位數(shù)……
郁悶之下萌生自己做一個(gè)的想法!
這東西很適合用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文檔,這個(gè)程序稍加修改也可以做其它事情:比如批量下載MP3、電子書等等。
好,就這些了,希望對你有幫助。
相關(guān)文章
Python與機(jī)器學(xué)習(xí)庫LightGBM使用詳解
LightGBM是一種高效的梯度提升決策樹框架,以其快速訓(xùn)練和高預(yù)測性能聞名,它通過直方圖算法和基于葉子生長策略優(yōu)化技術(shù),能夠在大規(guī)模數(shù)據(jù)集上提供卓越性能,本文詳細(xì)介紹了如何使用LightGBM進(jìn)行分類和回歸任務(wù),包括模型構(gòu)建、參數(shù)調(diào)整2025-01-01
python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼
本篇文章主要介紹了python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
python引用(import)某個(gè)模塊提示沒找到對應(yīng)模塊的解決方法
今天小編就為大家分享一篇python引用(import)某個(gè)模塊提示沒找到對應(yīng)模塊的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實(shí)現(xiàn)
這篇文章主要介紹了Python經(jīng)緯度坐標(biāo)轉(zhuǎn)換為距離及角度的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

