feat(tiktok): 增加json数据是否保存的开关

This commit is contained in:
imgyh 2023-03-25 21:20:58 +08:00
parent c5b9ec5faf
commit 8ea8871cc8
2 changed files with 25 additions and 21 deletions

View File

@ -538,7 +538,7 @@ class TikTok(object):
os.remove(filepath) os.remove(filepath)
print("[ 错误 ]:下载出错\r") print("[ 错误 ]:下载出错\r")
def awemeDownload(self, awemeDict: dict, music=True, cover=True, avatar=True, savePath=os.getcwd(), usingThread = True): def awemeDownload(self, awemeDict: dict, music=True, cover=True, avatar=True, resjson=True, savePath=os.getcwd(), usingThread = True):
if awemeDict is None: if awemeDict is None:
return return
if not os.path.exists(savePath): if not os.path.exists(savePath):
@ -553,12 +553,13 @@ class TikTok(object):
# 保存获取到的字典信息 # 保存获取到的字典信息
# print("[ 提示 ]:正在保存获取到的信息到 result.json\r\n") # print("[ 提示 ]:正在保存获取到的信息到 result.json\r\n")
try: if resjson:
with open(os.path.join(aweme_path, "result.json"), "w", encoding='utf-8') as f: try:
f.write(json.dumps(awemeDict, ensure_ascii=False, indent=2)) with open(os.path.join(aweme_path, "result.json"), "w", encoding='utf-8') as f:
f.close() f.write(json.dumps(awemeDict, ensure_ascii=False, indent=2))
except Exception as e: f.close()
print("[ 错误 ]:保存 result.json 失败\r\n") except Exception as e:
print("[ 错误 ]:保存 result.json 失败\r\n")
desc = file_name[:30] desc = file_name[:30]
# 下载 视频 # 下载 视频
@ -662,7 +663,7 @@ class TikTok(object):
except Exception as e: except Exception as e:
print("[ 错误 ]:下载作品时出错\r\n") print("[ 错误 ]:下载作品时出错\r\n")
def userDownload(self, awemeList: list, music=True, cover=True, avatar=True, savePath=os.getcwd(), thread=5): def userDownload(self, awemeList: list, music=True, cover=True, avatar=True, resjson=True, savePath=os.getcwd(), thread=5):
if awemeList is None: if awemeList is None:
return return
if not os.path.exists(savePath): if not os.path.exists(savePath):
@ -675,7 +676,7 @@ class TikTok(object):
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)))
self.awemeDownload(aweme, music, cover, avatar, savePath) self.awemeDownload(awemeDict=aweme, music=music, cover=cover, avatar=avatar, resjson=resjson, savePath=savePath,usingThread=True)
wait(self.alltask, return_when=ALL_COMPLETED) wait(self.alltask, return_when=ALL_COMPLETED)
end = time.time() # 结束时间 end = time.time() # 结束时间

View File

@ -33,6 +33,8 @@ def argument():
type=Utils().str2bool, required=False, default=True) type=Utils().str2bool, required=False, default=True)
parser.add_argument("--avatar", "-a", help="是否下载作者的头像(True/False), 默认为True", parser.add_argument("--avatar", "-a", help="是否下载作者的头像(True/False), 默认为True",
type=Utils().str2bool, required=False, default=True) type=Utils().str2bool, required=False, default=True)
parser.add_argument("--json", "-j", help="是否保存获取到的数据(True/False), 默认为True",
type=Utils().str2bool, required=False, default=True)
parser.add_argument("--mode", "-M", help="link是个人主页时, 设置下载发布的作品(post)或喜欢的作品(like)或者用户所有合集(mix), 默认为post", parser.add_argument("--mode", "-M", help="link是个人主页时, 设置下载发布的作品(post)或喜欢的作品(like)或者用户所有合集(mix), 默认为post",
type=str, required=False, default="post") type=str, required=False, default="post")
parser.add_argument("--number", "-n", parser.add_argument("--number", "-n",
@ -59,7 +61,7 @@ def main():
return return
elif key_type == "user" and args.mode != 'mix': elif key_type == "user" and args.mode != 'mix':
datalist = tk.getUserInfo(key, args.mode, 35, args.number) datalist = tk.getUserInfo(key, args.mode, 35, args.number)
tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, resjson=args.json,
savePath=args.path, thread=args.thread) savePath=args.path, thread=args.thread)
elif key_type == "user" and args.mode == 'mix': elif key_type == "user" and args.mode == 'mix':
if not os.path.exists(args.path): if not os.path.exists(args.path):
@ -70,31 +72,32 @@ def main():
print(f'[ 提示 ]:正在下载合集 [{mixIdNameDict[mix_id]}] 中的作品\r\n') print(f'[ 提示 ]:正在下载合集 [{mixIdNameDict[mix_id]}] 中的作品\r\n')
mix_file_name = utils.replaceStr(mixIdNameDict[mix_id]) mix_file_name = utils.replaceStr(mixIdNameDict[mix_id])
datalist = tk.getMixInfo(mix_id, 35) datalist = tk.getMixInfo(mix_id, 35)
tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, resjson=args.json,
savePath=os.path.join(args.path, mix_file_name), thread=args.thread) savePath=os.path.join(args.path, mix_file_name), thread=args.thread)
print(f'[ 提示 ]:合集 [{mixIdNameDict[mix_id]}] 中的作品下载完成\r\n') print(f'[ 提示 ]:合集 [{mixIdNameDict[mix_id]}] 中的作品下载完成\r\n')
elif key_type == "mix": elif key_type == "mix":
datalist = tk.getMixInfo(key,35, args.number) datalist = tk.getMixInfo(key,35, args.number)
tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, resjson=args.json,
savePath=args.path, thread=args.thread) savePath=args.path, thread=args.thread)
elif key_type == "music": elif key_type == "music":
datalist = tk.getMusicInfo(key,35, args.number) datalist = tk.getMusicInfo(key,35, args.number)
tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, tk.userDownload(awemeList=datalist, music=args.music, cover=args.cover, avatar=args.avatar, resjson=args.json,
savePath=args.path, thread=args.thread) savePath=args.path, thread=args.thread)
elif key_type == "aweme": elif key_type == "aweme":
datanew, dataraw = tk.getAwemeInfo(key) datanew, dataraw = tk.getAwemeInfo(key)
tk.awemeDownload(awemeDict=datanew, music=args.music, cover=args.cover, avatar=args.avatar, tk.awemeDownload(awemeDict=datanew, music=args.music, cover=args.cover, avatar=args.avatar, resjson=args.json,
savePath=args.path, usingThread=False) savePath=args.path, usingThread=False)
elif key_type == "live": elif key_type == "live":
live_json = tk.getLiveInfo(key) live_json = tk.getLiveInfo(key)
if not os.path.exists(args.path): if args.json:
os.mkdir(args.path) if not os.path.exists(args.path):
os.mkdir(args.path)
# 保存获取到json # 保存获取到json
print("[ 提示 ]:正在保存获取到的信息到result.json\r\n") print("[ 提示 ]:正在保存获取到的信息到result.json\r\n")
with open(os.path.join(args.path, "result.json"), "w", encoding='utf-8') as f: with open(os.path.join(args.path, "result.json"), "w", encoding='utf-8') as f:
f.write(json.dumps(live_json, ensure_ascii=False, indent=2)) f.write(json.dumps(live_json, ensure_ascii=False, indent=2))
f.close() f.close()
if __name__ == "__main__": if __name__ == "__main__":