视频下载器2.0

与之前的下载器对比的优势:

代码结构更加清晰:将获取视频链接的功能从下载视频的功能中分离出来,分别封装在不同的函数中,提高了代码的可读性和可维护性。
错误处理更集中:使得与特定功能相关的错误能够在相应的函数内进行集中处理和报告,便于定位和解决问题。
可扩展性更强:如果未来需要对获取视频链接的逻辑进行修改、添加新的获取方式或者对下载部分进行调整,都可以在各自的函数内进行独立修改,而不影响其他部分的代码。
导入所需的模块和库,并配置了日志的基本设置

import requests
from bs4 import BeautifulSoup
import re
import logging
import os
import time
from tkinter import Tk, Entry, Button, Label, messagebox
import yt_dlp

# 设置日志记录
logging.basicConfig(level=logging.INFO)

这段定义了 get_video_links 函数,用于从给定的网址获取视频链接
首先,它通过 requests 库获取网页内容,如果获取过程中出现网络请求异常,会记录错误日志并弹出错误消息框,然后返回空列表。

然后,使用 BeautifulSoup 解析网页内容,如果解析过程出错,也做相应处理。

接着,通过遍历网页中的链接来筛选出以 .mp4 结尾的视频链接。如果在查找过程中出现异常,同样记录错误并弹出消息框。

最后,函数返回获取到的视频链接列表。

def get_video_links(url):
    """
    从给定的 URL 获取视频链接
    :param url: 要获取视频链接的网页 URL
    :return: 视频链接列表,如果获取过程中出错则返回空列表
    """
    try:
        response = requests.get(url)
        response.raise_for_status() 
        html = response.text
    except requests.exceptions.RequestException as e:
        logging.error(f"请求网页时出错: {
     e}")
        messagebox.showerror("错误", f"请求网页时出错: {
     e}")
        return []

    try:
        soup = BeautifulSoup(html, 'html.parser')
    except Exception as e:
        logging.error(f"解析网页内容时出错: {
     e}")
        messagebox.showerror("错误", f"解析网页内容时出错: {
     e}")
        return []

    video_links = []
    try:
        for link in soup.find_all('a', href=True):
            href = link['href']
            if re.match(r'.*?\.mp4', href):
                video_links.append(href)
    except<
  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值