Exemplo n.º 1
0
Arquivo: run.py Projeto: QIXQI/spider
def downloadFile(folderName, fileUrl):
    ''' 
		下载文件
	'''
    fileName = getFileName(folderName, fileUrl)
    if os.path.exists(fileName):
        print('######文件' + fileName + '已下载##############')
        return

    # 下载文件
    try:
        # ret = requests.get(url=domain + fileUrl, headers=headers, timeout=30)
        # ret.encoding = ret.apparent_encoding

        # # 保存到磁盘
        # with open(fileName, 'wb') as fp:
        # 	fp.write(ret.content)
        # 	print('------文件' + fileName + '下载完成')

        # 下载文件并显示进度条
        with closing(
                requests.get(url=domain + fileUrl,
                             headers=headers,
                             timeout=30,
                             stream=True)) as response:
            # 单次请求最大值
            chunk_size = 1024
            # 内容体总大小
            content_size = int(response.headers['content-length'])
            progress = ProgressBar(fileName,
                                   total=content_size,
                                   unit='KB',
                                   chunk_size=chunk_size,
                                   run_status='正在下载',
                                   fin_status='下载完成')

            # 保存到磁盘
            with open(fileName, 'wb') as fp:
                for data in response.iter_content(chunk_size=chunk_size):
                    fp.write(data)
                    progress.refresh(count=len(data))
                print('------文件' + fileName + '下载完成')

    except requests.exceptions.ConnectionError:
        print('*********************文件' + fileName +
              '下载失败,正在重新请求**********************')
        time.sleep(5)
        downloadFile(folderName, fileUrl)
Exemplo n.º 2
0
 def downLoadFile(self, url, session, fileDir, fileName):
     self.createDir(fileDir)
     header = {
         'User-Agent':
         'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
     }
     with closing(session.get(url, headers=header,
                              stream=True)) as response:
         chunk_size = 1024  # 单次请求最大值
         content_size = int(response.headers['content-length'])  # 内容体总大小
         progress = ProgressBar(fileName,
                                total=content_size,
                                unit="KB",
                                chunk_size=chunk_size,
                                run_status="正在下载",
                                fin_status="下载完成")
         with open(fileDir + '/' + fileName, "wb") as file:
             for data in response.iter_content(chunk_size=chunk_size):
                 file.write(data)
                 progress.refresh(count=len(data))
Exemplo n.º 3
0
        payload['pageNum'] += 1
      else:
        temp = False
      
    else:
      print('request failed!')
      temp = False
      sys.exit()

  albumName = data[0]['albumName']

  for item in data:
    musicArr.append({'src':item['src'], 'name': item['trackName']})

  if not os.path.exists(albumName):
    os.makedirs(albumName)

  for m in musicArr:
    if os.path.exists(albumName + '/%s.m4a' % m['name']):
      continue
    with closing(requests.get(m['src'], headers=header, stream=True)) as res:
      chunk_size = 1024  # 单次请求最大值
      content_size = int(res.headers['content-length'])  # 内容体总大小
      progress = ProgressBar(m['name'], total=content_size,
                            unit="KB", chunk_size=chunk_size, run_status="downloading", fin_status="finished")
      
      with open(albumName + '/%s.m4a' % m['name'], 'wb') as f:
        for data in res.iter_content(chunk_size=chunk_size):
          f.write(data)
          progress.refresh(count=len(data))