python版的一个有声小说抓取批量下载工具

使用方法

运行脚本时,输入专辑 ID 和下载页数。
脚本会自动下载指定专辑的音频,并保存到名为 “Novel audio” 的文件夹中。
在下载过程中,可以通过键盘中断(Ctrl+C)来停止下载。

主要特点

交互式输入: 使用 Tkinter 提供的简单对话框,用户可以轻松输入专辑 ID 和下载页数。
下载续传: 脚本支持从指定页数继续下载,避免重复下载已有音频。
下载进度提示: 在下载过程中,脚本会输出当前下载的音频信息,包括音频标题和下载状态。
文件存在检查: 在下载前会检查音频文件是否已存在,避免重复下载相同的音频。
异常处理: 对可能的异常情况进行了处理,包括网络请求失败、JSON 解析错误等。
输出着色: 使用 ANSI 转义码实现输出文字的着色,以区分不同类型的输出信息。例如,错误信息为红色,警示信息为黄色,成功信息为绿色。
用户中断处理: 用户可以通过 Ctrl+C 中断下载,并会有相应的提示。

注意事项

请确保使用脚本的行为符合相关网站的使用协议。
下载过程中可能会因网络原因导致下载失败,可以重新运行脚本进行续传。
希望这个脚本能够方便你获取喜欢的小说音频,祝你使用愉快!
在这里插入图片描述

# **************************************************
# 免责声明:
# 本代码仅供学习和研究使用,严禁用于任何商业用途。
# 作者不对使用本代码导致的任何后果负责。
# 在使用本代码时,请遵守相关法律法规和网站的使用规定。
# **************************************************
 
import os
import tkinter as tk
from tkinter import simpledialog
import requests
import re
import json
 
# ANSI转义码
class Colors:
    RED = '\033[91m'
    YELLOW = '\033[93m'
    GREEN = '\033[92m'
    ENDC = '\033[0m'
 
def clean_filename(filename):
    # 移除非法字符
    return re.sub(r'[\/:*?"<>|]', '', filename)
 
def download_novel(id, page_num):
    current_page_file = "pageid_.txt"
 
    # 提示用户输入当前页数
    current_page = simpledialog.askinteger("输入", "请输入从第几页开始下载:")
 
    if current_page is None:
        print(Colors.RED + "未输入当前页数,退出下载" + Colors.ENDC)
        return
 
    if current_page > page_num:
        print(Colors.GREEN + "全部下载完成" + Colors.ENDC)
        return
 
    base_url = "https://www.ysts.cc/tingshu"
    session = requests.Session()
 
    url = "{}/{}/?p={}".format(base_url, id, current_page)
    headers = {
   
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值