From 7158dfcb3a518d5e2e014c7ac89d05bb3835d7bf Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Sat, 1 Mar 2025 18:12:19 +0800 Subject: [PATCH] 'commit' --- AI/Ylt/Login.py | 130 ----------------------------------------------- AI/Ylt/Upload.py | 27 ++++++++-- 2 files changed, 22 insertions(+), 135 deletions(-) delete mode 100644 AI/Ylt/Login.py diff --git a/AI/Ylt/Login.py b/AI/Ylt/Login.py deleted file mode 100644 index 302769d2..00000000 --- a/AI/Ylt/Login.py +++ /dev/null @@ -1,130 +0,0 @@ -import requests -import uuid -import base64 -import os - -# 创建 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'D:\1.mp4' - filetype = 'video/mp4' # 根据实际文件类型设置 - - # 获取文件大小 - file_size = os.path.getsize(filename) - - # 对文件名和文件类型进行 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': str(file_size), # 动态设置文件大小 - '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) \ No newline at end of file diff --git a/AI/Ylt/Upload.py b/AI/Ylt/Upload.py index 9c08fb47..ffd483af 100644 --- a/AI/Ylt/Upload.py +++ b/AI/Ylt/Upload.py @@ -1,4 +1,6 @@ import time + +import pyautogui from playwright.sync_api import Playwright, sync_playwright def run(playwright: Playwright) -> None: @@ -37,22 +39,37 @@ def run(playwright: Playwright) -> None: print("点击媒体库...") media_library = page.get_by_text("媒体库") # 通过 text 定位媒体库 media_library.click() - time.sleep(2) # 等待 2 秒,确保页面完全加载 + time.sleep(1) # 等待 2 秒,确保页面完全加载 # 点击“上传”按钮 print("点击上传按钮...") upload_button = page.get_by_text("上传") # 通过 text 定位上传按钮 upload_button.click() + # 上传文件 + page.locator("img").click() + # 等待文件选择对话框弹出 + time.sleep(1) # 根据实际情况调整等待时间 + print("切换为英文输入法...") + pyautogui.press("capslock") + + # 输入文件路径并按下回车键 + print("输入文件路径并按下回车键...") + # 逐个输入字符 + for char in r"d:\1.mp4": + pyautogui.press(char) + pyautogui.press("capslock") + pyautogui.press("enter") + time.sleep(50) + except Exception as e: print(f"操作过程中发生错误: {e}") finally: # 关闭浏览器 print("操作完成,关闭浏览器...") - time.sleep(60) - # context.close() - # browser.close() + context.close() + browser.close() # 初始化 Playwright playwright = sync_playwright().start() @@ -61,4 +78,4 @@ playwright = sync_playwright().start() run(playwright) # 结束 Playwright -# playwright.stop() \ No newline at end of file +playwright.stop() \ No newline at end of file