蓝揍云批量上传

查看 76|回复 7
作者:花无缺不缺   
众所周知蓝揍云只允许浏览器上传,且每次上传的文件不超过若干个(好像是5个?总之很少),我有1W个小文件要上传(都是50M-100M之间的),手动根本不现实。。。
之前听说有浏览器插件,可以模拟手动的操作,按我设定的步骤去上传(比如每次5个文件,2000次循环执行上传操作)。跪求可用的方法

上传, 文件

teddymvs   

交给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()
sgbyg   

[i]
QAZWSX666   


sgbyg 发表于 2025-4-24 21:16

怎么做到的,求教
cioceo   

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1934807&highlight=%C0%B6%D7%E0%D4%C6%C5%CC
这个了解下,我都用这个上传大量文件,但你这个数量没试过
花无缺不缺
OP
  


sgbyg 发表于 2025-4-24 21:16

大哥,大神,大佬,怎么实现的?能不能提供下方法或者软件?谢谢!
花无缺不缺
OP
  


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
这个 ...

不行呢,之前用过好多个版本,都是传了几十个后不行了,估计是检测到了。
花无缺不缺
OP
  

这几天研究了下,可以用ztasker的复合任务来实现(https://www.everauto.net/)。大致思路是:使用ztasker里的【按图识别按钮,识别到了之后点击】的功能,识别上传按钮,并点击。【参考https://bbs.everauto.net/forum.php?mod=viewthread&tid=501】
我已经全自动上传了5000多个文件了,有时候一轮上传后发现部分文件会上传失败,就用第三方客户端界面中复制已经存在的文件,去比对下哪些没传,把没传的文件放在一起。这样进行第二轮上传,以此类推把所有文件都上传。
还会遇到一个问题就是【按图识别按钮,识别到了之后点击】,有时候会识别不到按钮,就处理下图片,缩小图片范围,成功率就会高很多
您需要登录后才可以回帖 登录 | 立即注册

返回顶部