python多线程下载

from urllib2 import urlopen 
import re 
import Queue 
import threading 
import os 
class download(threading.Thread): 
    def __init__(self,que): 
        threading.Thread.__init__(self) 
        self.que=que 
    def run(self): 
        while True: 
            if not self.que.empty(): 
                #print('-----%s------'%(self.name)) 
                #os.system('wget '+self.que.get()) 
                print self.que.get()
            else: 
                break
  
def startDown(url,rule,num,start,end,decoding=None): 
    if not decoding: 
        decoding='utf8'
    req=urlopen(url) 
    body=req.read().decode(decoding) 
    rule=re.compile(rule) 
    link=rule.findall(body) 
    que=Queue.Queue() 
    for l in link: 
        que.put(l[start:end]) 
    for i in range(num): 
        d=download(que) 
        d.start() 
  
if __name__=='__main__': 
    url='https://class.coursera.org/algo-004/lecture/index'
    rule='<a target=\"_new\" href=\".*\"'
    startDown(url,rule,10,23,-1) 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值