mirror of
https://github.com/imgyh/tiktok.git
synced 2025-05-05 07:18:04 +08:00
feat(tiktok): 使用线程池代替手动创建线程
This commit is contained in:
parent
f224557461
commit
89d4c7cd42
38
TikTok.py
38
TikTok.py
@ -19,7 +19,7 @@ import json
|
|||||||
import time
|
import time
|
||||||
import os
|
import os
|
||||||
import copy
|
import copy
|
||||||
import threading
|
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from TikTokUtils import Utils
|
from TikTokUtils import Utils
|
||||||
@ -569,7 +569,8 @@ class TikTok(object):
|
|||||||
try:
|
try:
|
||||||
url = awemeDict["video"]["play_addr"]["url_list"]
|
url = awemeDict["video"]["play_addr"]["url_list"]
|
||||||
if url != "":
|
if url != "":
|
||||||
self.progressBarDownload(url, video_path, "[ 视频 ]:" + desc)
|
# self.progressBarDownload(url, video_path, "[ 视频 ]:" + desc)
|
||||||
|
self.alltask.append(self.tpool.submit(self.progressBarDownload,url, video_path, "[ 视频 ]:" + desc))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[ 警告 ]:视频下载失败,请重试...\r\n")
|
print("[ 警告 ]:视频下载失败,请重试...\r\n")
|
||||||
|
|
||||||
@ -585,7 +586,8 @@ class TikTok(object):
|
|||||||
try:
|
try:
|
||||||
url = image["url_list"][0]
|
url = image["url_list"][0]
|
||||||
if url != "":
|
if url != "":
|
||||||
self.progressBarDownload(url, image_path, "[ 图集 ]:" + desc)
|
#self.progressBarDownload(url, image_path, "[ 图集 ]:" + desc)
|
||||||
|
self.alltask.append(self.tpool.submit(self.progressBarDownload, url, image_path, "[ 图集 ]:" + desc))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[ 警告 ]:图片下载失败,请重试...\r\n")
|
print("[ 警告 ]:图片下载失败,请重试...\r\n")
|
||||||
|
|
||||||
@ -602,7 +604,8 @@ class TikTok(object):
|
|||||||
try:
|
try:
|
||||||
url = awemeDict["music"]["play_url"]["url_list"][0]
|
url = awemeDict["music"]["play_url"]["url_list"][0]
|
||||||
if url != "":
|
if url != "":
|
||||||
self.progressBarDownload(url, music_path, "[ 原声 ]:" + desc)
|
# self.progressBarDownload(url, music_path, "[ 原声 ]:" + desc)
|
||||||
|
self.alltask.append(self.tpool.submit(self.progressBarDownload, url, music_path, "[ 原声 ]:" + desc))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# print(e)
|
# print(e)
|
||||||
print("[ 警告 ]:音乐(原声)下载失败,请重试...\r\n")
|
print("[ 警告 ]:音乐(原声)下载失败,请重试...\r\n")
|
||||||
@ -619,7 +622,8 @@ class TikTok(object):
|
|||||||
try:
|
try:
|
||||||
url = awemeDict["video"]["cover_original_scale"]["url_list"][0]
|
url = awemeDict["video"]["cover_original_scale"]["url_list"][0]
|
||||||
if url != "":
|
if url != "":
|
||||||
self.progressBarDownload(url, cover_path, "[ 封面 ]:" + desc)
|
# self.progressBarDownload(url, cover_path, "[ 封面 ]:" + desc)
|
||||||
|
self.alltask.append(self.tpool.submit(self.progressBarDownload, url, cover_path, "[ 封面 ]:" + desc))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# print(e)
|
# print(e)
|
||||||
print("[ 警告 ]:cover下载失败,请重试...\r\n")
|
print("[ 警告 ]:cover下载失败,请重试...\r\n")
|
||||||
@ -636,7 +640,8 @@ class TikTok(object):
|
|||||||
try:
|
try:
|
||||||
url = awemeDict["author"]["avatar"]["url_list"][0]
|
url = awemeDict["author"]["avatar"]["url_list"][0]
|
||||||
if url != "":
|
if url != "":
|
||||||
self.progressBarDownload(url, avatar_path, "[ 头像 ]:" + desc)
|
# self.progressBarDownload(url, avatar_path, "[ 头像 ]:" + desc)
|
||||||
|
self.alltask.append(self.tpool.submit(self.progressBarDownload, url, avatar_path, "[ 头像 ]:" + desc))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
# print(e)
|
# print(e)
|
||||||
print("[ 警告 ]:avatar下载失败,请重试...\r\n")
|
print("[ 警告 ]:avatar下载失败,请重试...\r\n")
|
||||||
@ -648,24 +653,17 @@ class TikTok(object):
|
|||||||
return
|
return
|
||||||
if not os.path.exists(savePath):
|
if not os.path.exists(savePath):
|
||||||
os.mkdir(savePath)
|
os.mkdir(savePath)
|
||||||
t_list = []
|
|
||||||
t = None
|
self.tpool = ThreadPoolExecutor(thread)
|
||||||
|
self.alltask = []
|
||||||
|
|
||||||
start = time.time() # 开始时间
|
start = time.time() # 开始时间
|
||||||
for aweme in awemeList:
|
for aweme in awemeList:
|
||||||
# print("[ 提示 ]:正在下载 [%s] 的作品 %s/%s\r\n"
|
# print("[ 提示 ]:正在下载 [%s] 的作品 %s/%s\r\n"
|
||||||
# % (aweme["author"]["nickname"], str(ind + 1), len(awemeList)))
|
# % (aweme["author"]["nickname"], str(ind + 1), len(awemeList)))
|
||||||
t = threading.Thread(target=self.awemeDownload,
|
self.awemeDownload(aweme, music, cover, avatar, savePath)
|
||||||
kwargs={'awemeDict': aweme, 'music': music, 'cover': cover, 'avatar': avatar, 'savePath': savePath})
|
|
||||||
t_list.append(t)
|
wait(self.alltask, return_when=ALL_COMPLETED)
|
||||||
t.start()
|
|
||||||
if len(t_list) >= thread:
|
|
||||||
for t in t_list:
|
|
||||||
t.join()
|
|
||||||
t_list = []
|
|
||||||
# self.awemeDownload(aweme, music, cover, avatar, savePath)
|
|
||||||
if len(t_list) < thread:
|
|
||||||
for t in t_list:
|
|
||||||
t.join()
|
|
||||||
end = time.time() # 结束时间
|
end = time.time() # 结束时间
|
||||||
print('\n' + '[下载完成]:耗时: %d分钟%d秒\n' % (int((end - start) / 60), ((end - start) % 60))) # 输出下载用时时间
|
print('\n' + '[下载完成]:耗时: %d分钟%d秒\n' % (int((end - start) / 60), ((end - start) % 60))) # 输出下载用时时间
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user