From bceda5f9ea483695901ff6cf3ddd93ec6d85563e Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sat, 1 Mar 2025 16:29:29 +0800 Subject: [PATCH] 'commit' --- AI/Ylt/Doc/文档.txt | 6 ++ AI/Ylt/Login.py | 126 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 AI/Ylt/Doc/文档.txt create mode 100644 AI/Ylt/Login.py diff --git a/AI/Ylt/Doc/文档.txt b/AI/Ylt/Doc/文档.txt new file mode 100644 index 00000000..b92bfa59 --- /dev/null +++ b/AI/Ylt/Doc/文档.txt @@ -0,0 +1,6 @@ +注册成功 +账号:Ylt5786 +密码:DJCtjy064 +https://ww1.colorlightcloud.com +项目:充电站 +分配空间:4G \ No newline at end of file diff --git a/AI/Ylt/Login.py b/AI/Ylt/Login.py new file mode 100644 index 00000000..e496bca8 --- /dev/null +++ b/AI/Ylt/Login.py @@ -0,0 +1,126 @@ +import requests +import uuid +import base64 + +# 创建 Session 对象 +session = requests.Session() + + +# 1. 登录 +def login(): + login_url = 'https://ww1.colorlightcloud.com/wp-login.php' + log = 'Ylt5786' + pwd = 'DJCtjy064' + login_data = {'log': log, 'pwd': pwd, 'lwa': '1', 'login-with-ajax': 'login'} + + print("正在登录...") + login_response = session.post(login_url, data=login_data) + if login_response.json().get('result') == True: + print("登录成功,Cookie 已保存") + else: + print("登录失败") + exit() + + +# 2. 创建上传任务 +def create_upload_task(): + upload_url = 'https://ww1.colorlightcloud.com/wp-content/uploads/Tus' + filename = r'1_512×768.png' + filetype = 'image/jpeg' + + # 对文件名和文件类型进行 Base64 编码 + filename_base64 = base64.b64encode(filename.encode()).decode() + filetype_base64 = base64.b64encode(filetype.encode()).decode() + + # 动态生成 X-Request-ID + x_request_id = str(uuid.uuid4()) + + # 构造请求头 + headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip, deflate, br, zstd', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Connection': 'keep-alive', + 'Content-Length': '0', + 'Host': 'ww1.colorlightcloud.com', + 'Origin': 'https://ww1.colorlightcloud.com', + 'Referer': 'https://ww1.colorlightcloud.com/media', + 'Sec-Fetch-Dest': 'empty', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Site': 'same-origin', + 'Tus-Resumable': '1.0.0', + 'Upload-Length': '143214', # 文件大小 + 'Upload-Metadata': f'filename {filename_base64},filetype {filetype_base64}', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', + 'X-Request-ID': x_request_id, + 'ngsw-bypass': 'true', + 'sec-ch-ua': '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + } + + print("正在创建上传任务...") + response = session.post(upload_url, headers=headers) + if response.status_code == 201: # 201 Created 表示任务创建成功 + print("上传任务创建成功") + # 返回上传路径 + return response.headers.get('Location') + else: + print("上传任务创建失败,状态码:", response.status_code) + print("响应内容:", response.text) + exit() + + +# 3. 上传文件 +def upload_file(upload_path): + filename = r'D:\KeCheng\课程\【进阶篇】\【完成】生成6K高清小姐姐照片\imgs\1_512×768.png' + + # 读取文件内容 + print("正在读取文件...") + with open(filename, 'rb') as file: + file_data = file.read() + + # 动态生成 X-Request-ID + x_request_id = str(uuid.uuid4()) + + # 构造请求头 + headers = { + 'Accept': '*/*', + 'Accept-Encoding': 'gzip, deflate, br, zstd', + 'Accept-Language': 'zh-CN,zh;q=0.9', + 'Connection': 'keep-alive', + 'Content-Length': str(len(file_data)), # 动态设置文件大小 + 'Content-Type': 'application/offset+octet-stream', + 'Host': 'ww1.colorlightcloud.com', + 'Origin': 'https://ww1.colorlightcloud.com', + 'Referer': 'https://ww1.colorlightcloud.com/media', + 'Sec-Fetch-Dest': 'empty', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Site': 'same-origin', + 'Tus-Resumable': '1.0.0', + 'Upload-Offset': '0', + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', + 'X-Request-ID': x_request_id, + 'ngsw-bypass': 'true', + 'sec-ch-ua': '"Not(A:Brand";v="99", "Google Chrome";v="133", "Chromium";v="133"', + 'sec-ch-ua-mobile': '?0', + 'sec-ch-ua-platform': '"Windows"', + } + + print("正在上传文件...") + upload_response = session.patch(upload_path, headers=headers, data=file_data) + print("上传响应状态码:", upload_response.status_code) + print("上传响应内容:", upload_response.text) + + +# 主流程 +if __name__ == '__main__': + # 1. 登录 + login() + + # 2. 创建上传任务 + upload_path = create_upload_task() + + print(upload_path) + # 3. 上传文件 + upload_file('https://ww1.colorlightcloud.com' + upload_path)