【无标题】

该脚本使用Python的Selenium库自动化下载视频,从一个包含标题和链接的txt文件中读取数据,通过指定的下载工具网站进行操作,包括输入链接、点击下载按钮等步骤,并处理可能的加载延迟问题。此外,脚本还提供了自定义延时功能以应对网络或流量问题。
摘要由CSDN通过智能技术生成

import os

#import xlrd

from selenium.webdriver.common.keys import Keys

#import xlwt

import requests

#from lxml import etree

import time

import random

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC  # available since 2.26.0

from socket import MSG_WAITALL

import selenium

import numpy

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.chrome.service import Service

url='https://snapsave.io/zh-cn13'        #下载工具地址,如果修改,后续代码也需要修改。

#手动输入txt文件,txt文件格式为视频“title,链接”,可以由我发布的上一个代码生成。

txt_file_name = '.\\'+input('请输入txt文件名(不含.txt后缀):')+ '.txt'

YTB_list = numpy.loadtxt(txt_file_name,dtype=str,delimiter=',',encoding='utf-8')

# 请求头

headers = {

    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36'

}

s = Service(executable_path=r'.\\chromedriver.exe')  #调用chromedriver.exe插件

options  = webdriver.ChromeOptions()

options.add_experimental_option('excludeSwitches', ['enable-logging'])

browser = webdriver.Chrome(options=options,service=s)

ii=0

for jj in range(0,len(YTB_list)):

    browser.get(url)

    time.sleep(2)

    browser.find_element(By.XPATH,'//*[@id="s_input"]').send_keys(YTB_list[jj][1])        #输入链接

    time.sleep(3)

    for i in range(1,10):        #点击下载按钮。为防止加载时间过长,做了一个for+try组合,下同

        try:

            browser.find_element(By.XPATH,'//*[@id="search-form"]/button').click()

            print('点击下载',i)

            break

        except:

            time.sleep(5)

    time.sleep(5)

    for i in range(1,10):

        try:

            browser.find_element(By.XPATH,'//*[@id="btn-action"]').click()

            print('点击getlink,等待转换',i)

            break

        except:

            time.sleep(5)

    time.sleep(5)

    for i in range(1,10):

        try:

            browser.find_element(By.XPATH,'//*[@id="asuccess"]').click()

            print('点击下载',i,'\n')

            break

        except:

            time.sleep(5)

   

    ii+=1

    kk=0

    print("第",ii,"个视频开始下载: ",YTB_list[jj][0])

#这里设置while+time.sleep,是用于自行手动修改延时用的。延时的目的是防止流量或者网络拥堵问题,导致下载失败。可以根据视频大小,修改360和5的数值大小。

    while kk<360:       

        time.sleep(5)

        kk+=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值