国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python多線程下載有聲小說

開發 后端
這里不會漫無目的的取爬取一個網站的所有鏈接,而是給定一個小說,比方說我要下載小說《童年》,我會在我聽評書網上找到該小說的主頁然后用程序下載所有mp3音頻,具體做法見下面代碼。

有經驗的老鳥都(未婚的)會在公司附近租房,免受舟車勞頓之苦的同時節約了大把時間;也有些人出于某種原因需要每天披星戴月地游走于公司與家之間,很不幸俺就是這其中一員。由于家和公司離得比較遠,我平時在公交車上的時間占據了工作時間段的1/4,再加上杭州一向有中國的拉斯維加斯之稱(堵城),每每堵起來,哥都能想象自己成為變形金剛。這段漫長時間我想作為每個程序猿來說是無法忍受的,可是既然短時間無法改變生存的現狀,咱就好好利用這段時間吧。所以,我特地買了大屏幕的Note II 以便看pdf,另外耳朵也不能閑著,不過咱不是聽英語而是聽小說,我在讀書的時候就喜歡聽廣播,特別是說書、相聲等,所以我需要大量的有聲小說,現在網上這些資源多的很,但是下載頁記為麻煩,為了掙取更多的流量和廣告點擊,這些網站的下載鏈接都需要打開至少兩個以上的網頁才能找到真正的鏈接,甚是麻煩,為了節省整體下載時間,我寫了這個小程序,方便自己和大家下載有聲小說(當然,還有任何其他類型的資源)

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

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

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

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

  1. def parseUrl(starturl):  
  2.      '''''  
  3.      parse out download page from start url.  
  4.      eg. we can get 'http://www.5tps.com/down/8297_52_1_1.html' from 'http://www.5tps.com/html/8297.html'  
  5.      ''' 
  6.      global save2path  
  7.      rDownloadUrl = re.compile(".*?<A href=\'(/down/\w+\.html)\'.*"#find the link of download page  
  8.      #rTitle = re.compile("<TITILE>.{4}\s{1}(.*)\s{1}.*</TITLE>")  
  9.      #<TITLE>有聲小說 悶騷1 播音:劉濤 全集</TITLE>  
  10.      f = urllib2.urlopen(starturl)  
  11.      totalLine =  f.readlines()  
  12.        
  13.     ''''' create the name of saving file ''' 
  14.      title = totalLine[3].split(" ")[1]  
  15.      if os.path.exists(down2path+title) is not True:  
  16.          os.mkdir(down2path+title)  
  17.          save2path = down2path+title+"/" 
  18.        
  19.      downUrlLine = [ line for line in totalLine if rDownloadUrl.match(line)]  
  20.      downLoadUrl = [];  
  21.      for dl in downUrlLine:  
  22.          while True:  
  23.              m = rDownloadUrl.match(dl)  
  24.              if not m:  
  25.                  break 
  26.              downUrl = m.group(1)  
  27.              downLoadUrl.append(downUrl.strip())  
  28.              dl = dl.replace(downUrl,'')  
  29.      return downLoadUrl 

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

  1. def getDownlaodLink(starturl):  
  2.      '''''  
  3.      find out the real download link from download page.  
  4.      eg. we can get the download link 'http://180j-d.ysts8.com:8000/人物紀實/童年/001.mp3?\  
  5.      1251746750178x1356330062x1251747362932-3492f04cf54428055a110a176297d95a' from \  
  6.      'http://www.5tps.com/down/8297_52_1_1.html'  
  7.      ''' 
  8.      downUrl = []  
  9.      gbk_ClickWord = '點此下載' 
  10.      downloadUrl = parseUrl(starturl)  
  11.      rDownUrl = re.compile('<a href=\"(.*)\"><font color=\"blue\">'+gbk_ClickWord+'.*</a>'#find the real download link  
  12.      for url in downloadUrl:  
  13.          realurl = baseurl+url  
  14.          print realurl  
  15.          for line in urllib2.urlopen(realurl).readlines():  
  16.              m = rDownUrl.match(line)  
  17.              if m:  
  18.                  downUrl.append(m.group(1))  
  19.      
  20.      return downUrl 

4. 定義下載函數

  1. def download(url,filename):  
  2.      ''''' download mp3 file ''' 
  3.      print url  
  4.      urllib.urlretrieve(url, filename) 

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

  1. class DownloadThread(threading.Thread):  
  2.      ''''' dowanload thread class ''' 
  3.      def __init__(self,func,savePath):  
  4.          threading.Thread.__init__(self)  
  5.          self.function = func  
  6.          self.savePath = savePath  
  7.        
  8.      def run(self):  
  9.          download(self.function,self.savePath) 

6. 開始下載

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

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

等下了班copy到Note中就可以一邊聽小說一邊看資料啦,***附上源碼

原文鏈接:http://www.cnblogs.com/wuren/archive/2012/12/24/2831100.html

責任編輯:張偉 來源: 博客園
相關推薦

2015-02-03 15:06:23

android多線程下載

2011-05-31 13:29:40

Android 多線程

2014-12-31 15:42:21

Android多線程軟件下載

2010-02-01 17:25:09

Python多線程

2023-10-06 23:06:01

多線程Python

2009-03-12 10:52:43

Java線程多線程

2010-02-01 17:18:23

Python多線程環境

2021-08-12 14:33:20

Python多線程編程

2010-04-27 08:28:03

2010-03-18 16:02:09

python 多線程

2010-03-03 17:44:07

Python多線程

2024-10-16 09:34:50

2010-03-10 18:32:45

Python多線程

2022-03-09 17:01:32

Python多線程多進程

2010-03-10 08:54:49

Python多線程

2023-10-18 15:19:56

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門

2023-06-05 07:56:10

線程分配處理器

2023-06-06 08:17:52

多線程編程Thread類

2010-01-21 11:27:30

linux多線程機制線程同步
點贊
收藏

51CTO技術棧公眾號

欧美二区视频| 中国黄色在线视频| 亚洲a∨精品一区二区三区导航| 国产亚洲一区二区三区在线播放| 中文字幕欧美日韩一区| 亚洲精品日韩久久久| xxxx69视频| 亚洲影视在线| 国产成人aa精品一区在线播放| 黄色片免费在线观看| 成人精品国产福利| 99热在线国产| 综合激情网...| 欧美tk丨vk视频| 国产区视频在线| 国产在线91| 99久久婷婷国产综合精品| 91久久精品日日躁夜夜躁国产| 偷拍视频一区二区三区| 国产一区二区三区四区五区传媒| av亚洲一区二区三区| 一区二区三区在线影院| 三级在线电影| 在线精品自拍| 色噜噜亚洲精品中文字幕| 国产视频第一页在线观看| 亚洲激情图片小说视频| 女人天堂av手机在线| 国产精品中文字幕日韩精品| caoporn国产精品免费公开| 风间由美性色一区二区三区 | 国产精品第七影院| 亚洲美女久久| 八戒八戒神马在线电影| 国产欧美三级电影| 国产欧美在线播放| а√最新版天堂中文在线| 欧美一卡在线观看| 日本不卡在线| 欧美视频在线免费| 奇米影视888狠狠狠777不卡| 欧美日韩国产影片| 久操视频在线播放| 性欧美xxxx交| 日韩伦理精品| 色婷婷精品久久二区二区蜜臀av| 亚洲欧美日韩不卡| 午夜激情久久| 欧美一区深夜视频| 精品人人人人| 欧美日韩一区二区精品| 男女羞羞视频教学| 91官网在线免费观看| 麻豆av在线免费观看| 色婷婷综合成人av| 色老综合老女人久久久| 日韩av在线播放资源| 三级福利片在线观看| 一区三区二区视频| 涩爱av色老久久精品偷偷鲁| 隔壁老王国产在线精品| 国产精品vip| 中文字幕日韩精品无码内射| 国产精品乱子久久久久| 九色porny在线| 欧美黑人性视频| 水蜜桃久久夜色精品一区的特点| 欧美日韩黄色一级片| 午夜成人免费电影| av软件在线观看| 国产精品久久久| 国产精品自拍一区| 国产人妖ts一区二区| 久久久噜噜噜久久| 成人99免费视频| 成人国产免费电影| 91偷拍精品一区二区三区| 久久精品这里都是精品| 最新中文字幕在线播放| 99久久国产免费免费| 同产精品九九九| 欧美欧美在线| 国产精品入口免费软件| 中文字幕亚洲欧美日韩高清| 久久精品91| 精产国品自在线www| 久久久久999| 亚洲日本va午夜在线影院| 4438x成人网全国最大| 日本精品在线视频| 免费成人你懂的| 精品女厕厕露p撒尿| 国产一区二区三区视频| 免费精品视频| 亚洲免费不卡| 欧美日韩亚洲综合在线| 爽爽淫人综合网网站| 在线日本中文字幕| 日韩在线国产| 日韩中文字幕不卡视频| 91视频观看视频| 亚洲精品蜜桃乱晃| 岛国在线视频免费看| 无码日本精品xxxxxxxxx| 久久精品欧美视频| 精品成人久久av| 丝袜诱惑亚洲看片| 9999精品视频| 午夜视频在线免费| 麻豆映画在线观看| 日本一区二区视频在线| 欧美欧美全黄| 免费一级欧美在线大片| 天堂av在线免费观看| 国产又爽又黄ai换脸| 日韩中文字幕在线一区| 久久久久久久有限公司| 另类天堂视频在线观看| 在线播放国产精品二区一二区四区| 免费视频一区| 日韩理论电影| 欧美三级电影网址| 日韩欧美亚洲系列| 欧美一级免费播放| 欧美日韩一区二区三区在线视频| 久久久久久美女| 亚洲日韩欧美视频| 精品欧美久久久| 亚洲成人动漫在线观看| 99天天综合性| 粉嫩在线一区二区三区视频| 亚洲欧美激情在线视频| 亚洲美女屁股眼交3| 美女在线视频一区| 女主播福利一区| 综合国产视频| 在线免费日韩片| 在线播放网站| 99热在线免费观看| 黄色国产精品视频| 欧美日韩一区二区视频在线| 91精品国产综合久久香蕉| 久久久久久久综合日本| 国产成a人亚洲精品| 另类中文字幕网| 亚洲三级国产| 午夜亚洲福利| 欧美午夜一区| 亚洲精品123区| 亚洲国产一区二区精品专区| 91精品国产91久久久久久黑人| 精品美女在线视频| 日韩中文av| 日韩理论电影| 亚洲午夜精品一区二区国产| 成人91在线| 国产日韩一区| 国产精品一区二区三区四区| 国产伦理精品不卡| 久久色在线视频| 欧美极品美女视频| 一区二区三区免费看视频| 亚洲黄网站在线观看| 色综合一区二区三区| 亚洲国产日韩欧美综合久久| 色狠狠久久aa北条麻妃| 九色porny自拍| 大肉大捧一进一出好爽视频| 精品视频无码一区二区三区| 污导航在线观看| 日本成人网址| 免费观看亚洲天堂| 日韩免费看片| 不卡一区中文字幕| 欧美午夜影院在线视频| 亚洲色图国产精品| 国产经典一区二区| 亚欧洲精品在线视频免费观看| 手机看片福利盒子久久| 国产粉嫩一区二区三区在线观看| 午夜精品久久久久久毛片| 欧美成人日韩| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩在线播放一区| 欧美情侣性视频| 欧美一进一出视频| 三级黄色网址| 亚洲色图综合| 久久99久久99小草精品免视看| 国产精品伦理在线| 国产一区二区三区毛片| 国产乱码精品一区二区三区卡| 国产免费成人在线| av电影院在线看| 亚洲国内精品| 欧美视频一区二区三区…| 欧美国产第二页| 北条麻妃在线视频观看| 草莓视频丝瓜在线观看丝瓜18| 亚洲精选在线|