Python 制作的一个小说在线阅读工具

1.背景介绍

为了看小说不看广告,自己用Python实现从一个小说网站抓取小说,小工具功能简单,但还不完善,目前只能在线阅读,可以把已经加载的章节保存到本地,实现本地阅读。初步完成全部下载和导出纯文本文件,这样就可以导入到手机中阅读了。

2.使用说明

2.1加载小说

输入某部小说首页网址,单击开始加载,可刷出小说所有章节,并在右侧显示第一章的小说文本。

2.2.保存文件

单周左侧列表中的章节,可在右侧显示相应章节内容。点击保存按钮可以将已经打开浏览过的章节保存到本地文件,可以脱机阅读。

2.3 打开本地文件阅读

单击工具栏中的打开按钮,选择已保存在本地的小说文件,可加载本地小说阅读。

点击打开按钮,加载本地小说阅读。

2.4 窗口阅读区自适应窗口

点击列表中的章节可继续本地阅读。在电脑上阅读小说可以选择最大化窗口,或者根据需要调节窗口到合适的大小阅读。

2.5 下载和导出

已实现下载全部章节功能,可导出txt纯文本文件,但还有些小Bug(字符编码、网站防爬策略导致部分章节下载失败),还在测试中……将来有可能成为小说爱好者的福音。

3.关键代码分享

以下是下载章节数据关键代码,根据不同网站可能需要做相应的调整,或者进行代码完善,对不同网站的解析规则兼容,实现可以下载不同网站的小说。

import requests
from bs4 import BeautifulSoup
import os

def download_novel_chapters(url, output_file, chapter_count=3):
    try:
        # 获取小说目录页
        response = requests.get(url)
        response.encoding = 'utf-8'
        soup = BeautifulSoup(response.text, 'html.parser')
        # 查找章节链接
        chapters = []
        for link in soup.find_all('a'):
            href = link.get('href')
            print(href)
            if href and 'chapter' in href.lower():
                chapters.append(href)

        # 默认只取前三章
        chapters = chapters[:chapter_count]

        # 下载每章内容
        content = ""
        for i, chapter_url in enumerate(chapters, 1):
            if not chapter_url.startswith('http'):
                chapter_url = url + chapter_url
            chapter_response = requests.get(chapter_url)
            chapter_response.encoding = 'utf-8'
            chapter_soup = BeautifulSoup(chapter_response.text, 'html.parser')

            # 提取章节标题和内容
            title = chapter_soup.find('h1').text if chapter_soup.find('h1') else f"第{i}章"
            content += f"\n\n{title}\n\n"

            # 提取正文内容
            for p in chapter_soup.find_all('p'):
                content += p.text + '\n'

            print(f"已下载: {title}")

        # 保存到文件
        with open(output_file, 'w', encoding='utf-8') as f:
            f.write(content)

        print(f"\n{chapter_count}章内容已成功保存到: {output_file}")

    except Exception as e:
        print(f"下载过程中出错: {e}")

4. 感谢支持

喜欢看小说的朋友可以交流一下心得,以便软件功能更加好用,感谢大家支持!!!

目前只实现了基本的功能,还有很多功能有待完善。

工具下载:https://download.csdn.net/download/urhero/92099426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

urhero

一切源于您的鼓励与支持,谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值