#encoding:utf8import _threadimport timeimport requestsfrom lxml import etreeimport reimport sysfrom contextlib import closing# 为线程定义一个函数class ProgressBar(object): def __init__(self, title, count=0.0, run_status=None, fin_status=None, total=100.0, unit=‘‘, sep=‘/‘, chunk_size=1.0): super(ProgressBar, self).__init__() self.info = "【%s】%s %.2f %s %s %.2f %s" self.title = title self.total = total self.count = count self.chunk_size = chunk_size self.status = run_status or "" self.fin_status = fin_status or " " * len(self.status) self.unit = unit self.seq = sep def __get_info(self): # 【名称】状态 进度 单位 分割线 总数 单位 _info = self.info % (self.title, self.status, self.count/self.chunk_size, self.unit, self.seq, self.total/self.chunk_size, self.unit) return _info def refresh(self, count=1, status=None): self.count += count # if status is not None: self.status = status or self.status end_str = "\r" if self.count >= self.total: end_str = ‘\n‘ self.status = status or self.fin_status print(self.__get_info()) print(end=end_str)#以上是进度条设置 def print_time(threadName=‘Thread-1‘, delay=‘http://newoss.maiziedu.com/qiniu/1shuozaiqianmiandehua.mp4‘): da = {‘Referer‘: ‘http://m.maiziedu.com/course/393-4373/‘, ‘User-Agent‘: ‘Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36‘} with closing(requests.get(delay, stream=True,headers=da)) as response: chunk_size = 1024 # 单次请求最大值 content_size = int(response.headers[‘content-length‘]) # 内容体总大小 progress = ProgressBar(threadName, total=content_size, unit="KB", chunk_size=chunk_size, run_status="正在下载", fin_status="下载完成") with open(‘F:\\10\\bsbs\\mai\\‘+threadName+‘.mp4‘, "wb") as file: for data in response.iter_content(chunk_size=chunk_size): file.write(data) progress.refresh(count=len(data)) print(threadName+‘开始‘) # yuan = requests.get(delay, headers=da).content # op = open(‘F:\\10\\bsbs\\mai\\‘+threadName+‘.mp4‘, ‘wb‘) # op.write(yuan) # op.close() # 创建两个线程# print_time()try: _thread.start_new_thread(print_time, ("Thread-1",‘http://newoss.maiziedu.com/qiniu/1shuozaiqianmiandehua.mp4‘)) _thread.start_new_thread(print_time, ("Thread-2",‘http://newoss.maiziedu.com/qiniu/8lei.mp4‘))except: print("Error: unable to start thread") while 1: pass print("Main Finished")
时间: 2024-10-08 13:55:29