Python + ttkbootstrap 制作全网小说下载神器

这篇具有很好参考价值的文章主要介绍了Python + ttkbootstrap 制作全网小说下载神器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

ttkbootstrap是一个基于Python的开源库,用于创建漂亮且交互式的GUI应用程序。它是在Tkinter框架之上构建的,提供了一系列的Widget组件和样式,可以帮助开发者快速构建现代化的用户界面。

今天做的是这个东西,蓝色的是进度条

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

获取数据代码(附上代码)

def get_response(html):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
    }
    response = requests.get(url=html, headers=headers)
    return response


def search(key):
    search_url = f'https://www.xzmncy.com/api/search?q={key}'
    search_data = get_response(search_url).json()
    search_info = []
    num = 1
    for index in search_data['data']['search']:
        dit = {
            'num': num,
            'name': index['book_name'],
            'author': index['author'],
            'book': index['book_list_url'].split('/')[-2],
        }
        search_info.append(dit)
        num += 1
    return search_info


def get_info(book):
    link = f'https://www.xzmncy.com/list/{book}/'
    link_data = get_response(link).text
    link_selector = parsel.Selector(link_data)
    href = link_selector.css('#list dd a::attr(href)').getall()
    href = ['https://www.xzmncy.com' + i for i in href]
    return href


def get_content(html):
    html_data = get_response(html).text
    selector = parsel.Selector(html_data)
    title = selector.css('.bookname  h1::text').get()
    content_list = selector.css('#htmlContent p::text').getall()
    content = '\n'.join(content_list)
    return title, content


def save(name, title, content):
    with open(name+'.txt', mode='a', encoding='utf-8') as f:
        f.write(title)
        f.write('\n')
        f.write(content)
        f.write('\n')

界面显示

所需模块

import ttkbootstrap as ttk
from PIL import ImageTk, Image
from download import *
from ttkbootstrap.dialogs import Messagebox

实例化创建应用程序窗口

root = ttk.Window(
    title="小说下载器",  # 设置窗口的标题
    themename="litera",  # 设置主题
    size=(470, 520),  # 窗口的大小
    position=(100, 100),  # 窗口所在的位置
    minsize=(0, 0),  # 窗口的最小宽高
    maxsize=(1920, 1080),  # 窗口的最大宽高
    resizable=None,  # 设置窗口是否可以更改大小
    alpha=1.0,  # 设置窗口的透明度(0.0完全透明)
)

ico = ImageTk.PhotoImage(Image.open("python.ico"))
root.iconphoto(False, ico)
root.place_window_center()    #让显现出的窗口居中
root.resizable(False, False)  # 让窗口不可更改大小


root.mainloop()

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

搜索框

image = Image.open("img\\123123.png")
photo = ImageTk.PhotoImage(image)
ttk.Label(root, image=photo).pack()
key_input_frame = ttk.Frame()
key_input_frame.pack(pady=10)
key_input_key_va = ttk.StringVar()
ttk.Label(key_input_frame, text='小说 | 作者', font=('微软雅黑', 12)).pack(side=ttk.LEFT)
ttk.Entry(key_input_frame, textvariable=key_input_key_va, font=('微软雅黑', 12)).pack(side=ttk.LEFT, padx=10,fill=ttk.BOTH)
num_input_frame = ttk.Frame()
num_input_frame.pack(pady=10)
num_input_key_va = ttk.StringVar()
ttk.Label(num_input_frame, text='小说 | 序号', font=('微软雅黑', 12)).pack(side=ttk.LEFT)
ttk.Entry(num_input_frame, textvariable=num_input_key_va, font=('微软雅黑', 12)).pack(side=ttk.LEFT, padx=10,fill=ttk.BOTH)
frame = ttk.Frame()
frame.pack(fill=ttk.BOTH)

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

按钮和进度条

ttk.Button(key_input_frame, text='搜索').pack(side=ttk.LEFT)
ttk.Button(num_input_frame, text='下载').pack(side=ttk.LEFT)
progress_bar = ttk.Progressbar(frame, orient='horizontal', length=300, mode='determinate')
progress_bar.pack(pady=20)

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

显示搜索到的书名、作者等

# 1. 创建字段
columns = ("num", "name", "author", "book")
columns_value = ('序号', '小说', '作者', '书ID')
# 2. 创建表格对象
tree_view = ttk.Treeview(root, show="headings", columns=columns)
# 3. 给表格添加字段名
tree_view.column('num', width=80, anchor='center')
tree_view.column('name', width=80, anchor='center')
tree_view.column('author', width=80, anchor='center')
tree_view.column('book', width=80, anchor='center')

# 4. 设置字段在页面上显示的内容
tree_view.heading('num', text='序号')
tree_view.heading('name', text='小说')
tree_view.heading('author', text='作者')
tree_view.heading('book', text='书ID')

# 5. 将表格对象布局到页面上
tree_view.pack(fill=ttk.BOTH, expand=True)

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

搜索功能设置

def show():
    key = key_input_key_va.get()
    search_info = search(key)
    # 6. 往表格中添加数据
    for index, stu in enumerate(search_info):
        tree_view.insert('', index + 1, values=(
            stu['num'], str(stu['name']), str(stu['author']), str(stu['book'])))

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

下载功能设置

def start_download():
    key = key_input_key_va.get()
    search_info = search(key)
    page = num_input_key_va.get()
    book = search_info[int(page) - 1]['book']
    href = get_info(book)
    # 模拟下载任务,这里使用一个简单的循环来表示
    for i in range(len(href)):
        # 更新进度条的值
        progress_bar['value'] = i
        # 更新进度条的显示
        progress_bar.update()
        list_url = href[i]
        title, content = get_content(list_url)
        save(name=search_info[int(page) - 1]['name'], title=title, content=content)

    Messagebox.show_info(title='下载提示', message=f'关于 {search_info[int(page) - 1]["name"]} 内容, 下载完成!!!!', alert=True)

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

最后运行效果

Python + ttkbootstrap 制作全网小说下载神器,Python案例教学,python,开发语言

适合练手的25个Python案例源码分享,总有一个你想要的文章来源地址https://www.toymoban.com/news/detail-643143.html

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

到了这里,关于Python + ttkbootstrap 制作全网小说下载神器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小说推文配音是怎么制作的?小说推文账号视频制作攻略

    你是否刷到过这样的视频: 一段视频配几段文字或者像ppt轮播一样的小说页配上bgm,或者是一段比较劲爆的文字开头,让你一看就忍不住接着往下继续看下去,这种账号呢,我们把它叫做小说推文。在这些视频的评论区都有一些,如果你搜过了,那么恭喜你,你成功参

    2023年04月22日
    浏览(40)
  • Python GUI之tkinter的皮肤(ttkbootstrap)打造出你的窗口之美

    tkinter是python自带的标准gui库,对于我们自己日常做一些小程序出来给自己使用是非常不错的。因为tkinter相比较其它强大的gui库(PyQT,WxPython等等)而言要简单、方便、学起来也容易得很多,基本上两三天就能学会,所以非常是nice的。但是喃,它做出来的界面,如果你是没有

    2024年02月02日
    浏览(38)
  • ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(一)

    最近大模型频出,但是对于我们普通人来说,如何使用这些AI工具来辅助我们的工作呢,或者参与进入我们的生活,就着现在比较热门的几个AI,写个一个提高生产力工具,现在在逻辑上已经走通了,后面会针对web页面、后台进行优化。 github链接 https://github.com/Anning01/TextCrea

    2024年02月14日
    浏览(39)
  • ChatGPT + Stable Diffusion + 百度AI + MoviePy 实现文字生成视频,小说转视频,自媒体神器!(二)

    最近大模型频出,但是对于我们普通人来说,如何使用这些AI工具来辅助我们的工作呢,或者参与进入我们的生活,就着现在比较热门的几个AI,写个一个提高生产力工具,现在在逻辑上已经走通了,后面会针对web页面、后台进行优化。 github链接 B站教程视频 https://www.bilibil

    2024年02月14日
    浏览(39)
  • Vscode (Visual Studio Code)使用Thief-Book插件看小说摸鱼神器

    Vscode (Visual Studio Code)使用Thief-Book插件看小说摸鱼神器,话不多说直接开整: 第一步:打开 VS Code 编辑器,在侧边栏中选择“扩展”,搜索并安装 Thief-Book 插件  第二步:准备好要看的小说txt文件,需要另存为选一下utf-8格式,否则待会儿文字会乱码   选择utf-8格式 第三步:

    2024年01月18日
    浏览(64)
  • 2023自动部署神器——Jenkins全网最全攻略

    ​ ​ 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新部署; 这些情况都会涉及到频繁的打包部署; 手动打包常规步骤

    2024年02月16日
    浏览(30)
  • 小案例:用Python制作音乐播放器

    以下是音乐播放器要实现的功能:         1.可以通过打开存放音频文件夹来添加音频         2.可以播放和暂停音频         3.可以设置播放音量 需要实现音频播放器的模块:         1. pygame 的音频播放功能         2. easygui 的 fileopenbox 函数与 os 的 listdir 函数        

    2024年02月12日
    浏览(32)
  • python界面开发案例:制作一个计算器软件

    前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 在我们手机上大家都有一个计算器,对吧 那它这功能是怎么实现的呢? 今天我们在电脑上来实现一个电脑端计算器界面~ 开发环境: Python 3.8 / 编译器 Pycharm 2021.2版本 / 编辑器 本文所有模块环境源码教程皆可点击文章下方

    2023年04月16日
    浏览(39)
  • 深入浅出阿里数据同步神器:Canal原理+配置+实战全网最全解析!

    canal 翻译为管道,主要用途是基于 MySQL 数据库的增量日志 Binlog 解析,提供增量数据订阅和消费。 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变

    2024年02月10日
    浏览(28)
  • Python制作经典游戏案例-水果忍者(附源码等文件)

    大家好,我是辣条哥,今天给大家分享一款我以前特爱玩的游戏,水果大战,今天我就教大家使用python把这款游戏制作出来。我们先来看效果 点击跳转文末 相关的一些音乐文件,还有代码文件都在文末直接找辣条拿就行~ 记得给辣条顶一顶支持一下啊~ 当我运行代码这个就是

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包