main
HuangHai 5 months ago
parent ff89198d4c
commit 7158dfcb3a

@ -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)

@ -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()
playwright.stop()
Loading…
Cancel
Save