正则表达式(实战)-给bilibilihelper下载的视频按下载顺序改名称(含自动化下载)

 主要记录批量下载b站视频如何自动化解放双手。

当然该源码还无法做到面向所有视频都能套入。

能套入的部分有:批量下载合集里的视频

批量修改名称,那里需要根据视频特点,通过正则表达式来改名。

还有一个需要注意的点是:我通常习惯把edge放任务栏的第2个位置,记录下载顺序的txt文件放任务栏的第3个位置。【需要根据注释修改,也可以按照已经写好的位置摆放】

整理资料的时候发现,还需要一下图片放在源码main.py的根目录下,如图:(图片资源就5kb左右,放网上存储一下, 怕到时找不到了。)

pic.zip - 蓝奏云

import os
import re
import pyautogui
import time


# renwu_path = r'D:\Lenovo\下载\Video\原\4.2test'
path = r'D:\Lenovo\下载\Video\原\4.2'
renwu_path = r'D:\Lenovo\下载\Video\原\4.2任务'
pre_name = '原神4.2宝箱'


def baoxiang(path, first_name):
    """修改宝箱名称的函数"""
    for i in os.listdir(path):
        tst = re.findall('.*?(\d+-\d+).*?', i)
        try:
            new_name = first_name + tst[0] + '.mp4'
            print(new_name)
            os.rename(path + '\\' + i, path + '\\' + new_name)
        except IndexError:
            continue


def renwu(path):
    """修改任务名称的函数,并查找id"""
    with open('cid.txt') as f:
        data = f.read()
        f.close()
    data = data.split('\n')

    new = [i for i in data if i != '']
    for i in range(len(new)):
        new[i] = int(new[i])
    print(new, '\n')

    for i in os.listdir(path):
        temp = re.findall('.*?.(\d+).mp4', i)
        last_name = re.findall('【原神】(.*?)_.*?', i)  # 找【原神】和下划线_之间的文字
        shunxu = new.index(int(temp[0])) + 1  # 自己视频索引从1开始
        new_name = 'P' + str(shunxu) + '-' + last_name[0] + '.mp4'
        print(new_name)
        os.rename(path + '\\' + i, path + '\\' + new_name)


def auto_download():
    def click_pic(img_src):
        location = pyautogui.locateCenterOnScreen(img_src)
        if location is not None:
            pyautogui.click(location.x, location.y, interval=0.2, duration=0.2)  # , button=lOrR
            pyautogui.moveTo(location.x + 200, location.y)

    click_pic('bilibiliacg.png')
    time.sleep(1)
    click_pic('360p.png')
    time.sleep(1)
    pyautogui.press('Enter')
    time.sleep(1)
    click_pic('cid.png')

    time.sleep(5)
    while 1:
        location = pyautogui.locateCenterOnScreen('finish.png')
        if location is not None:
            break
        time.sleep(0.5)

    pyautogui.hotkey('winleft', '3')  # txt在第3的位置
    time.sleep(1)
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('Enter')

    click_pic('bilibiliacg.png')
    pyautogui.press(']')  # 切换合集中的下一集


def auto_main(nums):
    pyautogui.hotkey('winleft', '2')  # edge在第2的位置
    time.sleep(1)

    for i in range(nums):
        auto_download()
        time.sleep(5)  # 每下载完成一个视频后休息5秒


if __name__ == '__main__':
    # auto_main(5)  # 自动下载视频5个视频
    mode = input('请输入模式:1、宝箱  2、任务')
    if mode == '1':
        baoxiang(path, pre_name)
    elif mode == '2':
        renwu(renwu_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值