老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Python多線程如何下載有聲小說

這篇文章跟大家分析一下“Python多線程如何下載有聲小說”。內容詳細易懂,對“Python多線程如何下載有聲小說”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“Python多線程如何下載有聲小說”的知識吧。

公司主營業務:網站設計制作、成都做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯建站是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯建站推出番禺免費做網站回饋大家。

我特地買了大屏幕的Note II 以便看pdf,另外耳朵也不能閑著,不過咱不是聽英語而是聽小說,我在讀書的時候就喜歡聽廣播,特別是說書、相聲等,所以我需要大量的有聲小說,現在網上這些資源多的很,但是下載頁記為麻煩,為了掙取更多的流量和廣告點擊,這些網站的下載鏈接都需要打開至少兩個以上的網頁才能找到真正的鏈接,甚是麻煩,為了節省整體下載時間,我寫了這個小程序,方便自己和大家下載有聲小說(當然,還有任何其他類型的資源)

先說明一下,我不是為了爬很多資料和數據,僅僅是為了娛樂和學習,所以這里不會漫無目的的取爬取一個網站的所有鏈接,而是給定一個小說,比方說我要下載小說《童年》,我會在我聽評書網上找到該小說的主頁然后用程序下載所有mp3音頻,具體做法見下面代碼,所有代碼都在模塊crawler5tps中:

1. 先設定一下start url 和保存文件的目錄

#-*-coding:GBK-*-   import urllib,urllib2   import re,threading,os   baseurl = 'http://www.5tps.com' #base url    down2path = 'E:/enovel/'        #saving path   save2path = ''                  #saving file name (full path)

2. 從start url 解析下載頁面的url

def parseUrl(starturl):       '''''       parse out download page from start url.       eg. we can get 'http://www.5tps.com/down/8297_52_1_1.html' from 'http://www.5tps.com/html/8297.html'       '''      global save2path       rDownloadUrl = re.compile(".*?.{4}\s{1}(.*)\s{1}.*")       #有聲小說 悶騷1 播音:劉濤 全集       f = urllib2.urlopen(starturl)       totalLine =  f.readlines()         ''''' create the name of saving file '''      title = totalLine[3].split(" ")[1]       if os.path.exists(down2path+title) is not True:           os.mkdir(down2path+title)           save2path = down2path+title+"/"             downUrlLine = [ line for line in totalLine if rDownloadUrl.match(line)]       downLoadUrl = [];       for dl in downUrlLine:           while True:               m = rDownloadUrl.match(dl)               if not m:                   break              downUrl = m.group(1)               downLoadUrl.append(downUrl.strip())               dl = dl.replace(downUrl,'')       return downLoadUrl

3. 從下載頁面解析出真正的下載鏈接

def getDownlaodLink(starturl):       '''''       find out the real download link from download page.       eg. we can get the download link 'http://180j-d.ysts8.com:8000/人物紀實/童年/001.mp3?\       1251746750178x1356330062x1251747362932-3492f04cf54428055a110a176297d95a' from \       'http://www.5tps.com/down/8297_52_1_1.html'       '''      downUrl = []       gbk_ClickWord = '點此下載'      downloadUrl = parseUrl(starturl)       rDownUrl = re.compile(''+gbk_ClickWord+'.*') #find the real download link       for url in downloadUrl:           realurl = baseurl+url           print realurl           for line in urllib2.urlopen(realurl).readlines():               m = rDownUrl.match(line)               if m:                   downUrl.append(m.group(1))            return downUrl

4. 定義下載函數

def download(url,filename):       ''''' download mp3 file '''      print url       urllib.urlretrieve(url, filename)

5. 創建用于下載文件的線程類

class DownloadThread(threading.Thread):       ''''' dowanload thread class '''      def __init__(self,func,savePath):           threading.Thread.__init__(self)           self.function = func           self.savePath = savePath              def run(self):           download(self.function,self.savePath)

6. 開始下載

if __name__ == '__main__':       starturl = 'http://www.5tps.com/html/8297.html'      downUrl = getDownlaodLink(starturl)       aliveThreadDict = {}        # alive thread       downloadingUrlDict = {}     # downloading link          i = 0;       while i < len(downUrl):           ''''' Note:我聽評說網 只允許同時有三個線程下載同一部小說,但是有時受網絡等影響,\                           為確保下載的是真實的mp3,這里將線程數設為2 '''          while len(downloadingUrlDict)< 2 :               downloadingUrlDict[i]=i               i += 1          for urlIndex in downloadingUrlDict.values():               #argsTuple = (downUrl[urlIndex],save2path+str(urlIndex+1)+'.mp3')               if urlIndex not in aliveThreadDict.values():                   t = DownloadThread(downUrl[urlIndex],save2path+str(urlIndex+1)+'.mp3')                   t.start()                   aliveThreadDict[t]=urlIndex           for (th,urlIndex) in aliveThreadDict.items():               if th.isAlive() is not True:                   del aliveThreadDict[th] # delete the thread slot                   del downloadingUrlDict[urlIndex] # delete the url from url list needed to download               print 'Completed Download Work'

這樣就可以了,讓他盡情的下吧,咱還得碼其他的項目去,哎 >>>

Python多線程如何下載有聲小說

關于Python多線程如何下載有聲小說就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下創新互聯網站!


分享題目:Python多線程如何下載有聲小說
地址分享:http://www.xueling.net.cn/article/pesgej.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久久久香蕉国产线看观看伊 | 欧美日韩在线视频免费 | 国产免费区一区二区三视频免费 | 超频97人妻在线视频 | 麻豆高清免费国产一区 | 精品国产一区二区三区四区阿崩 | 国产性色一区二区 | 日本成熟少妇喷浆视频 | 粉嫩国产15xxxxx | 国产精品精品久久久久久 | 蜜臀av在线观看 | 日韩欧美中文字幕在线观看 | 一级黄色片子免费看 | 日本免费无遮挡毛片的意义 | 日韩内射美女人妻一区二区三区 | 999ZYZ玖玖资源站在线观看 | 免费高清网站在线播放的注意事项 | 夜色福利院在线观看免费 | 91污色多多 | 国产精品污WWW在线观看 | 国产小视频免费观看 | 免费看荫蒂添的好舒服视频 | 中国美女毛茸茸撒尿 | 99热这里只有精品在线观看 | 韩日在线观看视频 | 日韩精品一区二区在线播放 | 日本免费一级高清婬日本片 | 日本成人一区 | chinese蓝男色video | 国产亚洲精品成人AA片在线播 | 国产在线观看免费人成视频 | av片免费大全在线观看不卡 | 美女做爰内谢免费网站 | 黄色成人在线视频 | 性感一级毛片 | 陈书婷被肉干高H潮文 | 午夜亚洲国产理论片 | 中文字幕一区二区三区精华液 | 国产一区二区 | 午夜影视啪啪免费体验区入口 | 国产精品毛片在线 |