众所周知蓝揍云只允许浏览器上传,且每次上传的文件不超过若干个(好像是5个?总之很少),我有1W个小文件要上传(都是50M-100M之间的),手动根本不现实。。。 之前听说有浏览器插件,可以模拟手动的操作,按我设定的步骤去上传(比如每次5个文件,2000次循环执行上传操作)。跪求可用的方法 上传, 文件
交给ai [Python] 纯文本查看 复制代码import os import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # 配置路径 CHROME_DRIVER_PATH = "path/to/chromedriver" # 替换为你的 chromedriver 路径 UPLOAD_URL = "https://example.com/upload" # 替换为目标上传页面的 URL FILE_DIR = "path/to/your/files" # 替换为存放文件的目录路径 BATCH_SIZE = 5 # 每次上传的文件数量 def get_file_list(directory): """获取指定目录下的所有文件""" return [os.path.join(directory, f) for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))] def upload_files(driver, file_paths): """上传一组文件""" try: # 定位文件上传输入框 upload_input = driver.find_element(By.XPATH, "//input[@type='file']") # 输入文件路径(多个文件用 \n 分隔) upload_input.send_keys("\n".join(file_paths)) # 提交上传 submit_button = driver.find_element(By.XPATH, "//button[contains(text(), 'Upload')]") submit_button.click() # 等待上传完成(根据实际情况调整时间) time.sleep(60) # 假设每次上传需要 1 分钟 except Exception as e: print(f"上传失败: {e}") def main(): # 初始化浏览器 chrome_options = Options() chrome_options.add_argument("--start-maximized") service = Service(CHROME_DRIVER_PATH) driver = webdriver.Chrome(service=service, options=chrome_options) try: # 打开上传页面 driver.get(UPLOAD_URL) time.sleep(5) # 等待页面加载 # 获取文件列表 files = get_file_list(FILE_DIR) total_files = len(files) print(f"总文件数: {total_files}") # 分批上传 for i in range(0, total_files, BATCH_SIZE): batch_files = files[i:i + BATCH_SIZE] print(f"正在上传第 {i // BATCH_SIZE + 1} 批文件: {batch_files}") upload_files(driver, batch_files) print("所有文件上传完成!") finally: # 关闭浏览器 driver.quit() if __name__ == "__main__": main()
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1934807&highlight=%C0%B6%D7%E0%D4%C6%C5%CC 这个了解下,我都用这个上传大量文件,但你这个数量没试过
cioceo 发表于 2025-4-25 11:39 https://www.52pojie.cn/forum.php?mod=viewthread&tid=1934807&highlight=%C0%B6%D7%E0%D4%C6%C5%CC 这个 ... 不行呢,之前用过好多个版本,都是传了几十个后不行了,估计是检测到了。
这几天研究了下,可以用ztasker的复合任务来实现(https://www.everauto.net/)。大致思路是:使用ztasker里的【按图识别按钮,识别到了之后点击】的功能,识别上传按钮,并点击。【参考https://bbs.everauto.net/forum.php?mod=viewthread&tid=501】 我已经全自动上传了5000多个文件了,有时候一轮上传后发现部分文件会上传失败,就用第三方客户端界面中复制已经存在的文件,去比对下哪些没传,把没传的文件放在一起。这样进行第二轮上传,以此类推把所有文件都上传。 还会遇到一个问题就是【按图识别按钮,识别到了之后点击】,有时候会识别不到按钮,就处理下图片,缩小图片范围,成功率就会高很多