吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19875|回复: 1087
上一主题 下一主题
收起左侧

[原创工具] 小说下载器 - 你的网文自由神器!

    [复制链接]
跳转到指定楼层
楼主
PJlay 发表于 2026-8-13 22:51 回帖奖励
本帖最后由 PJlay 于 2026-8-22 10:22 编辑


有小伙伴反馈,内置的书源域名已经挂了。看到评论区有推荐的书源,我现在新增了几个上去。新的下载链接我放在下方了!
各位使用过程有什么好的建议,欢迎大家积极讨论,觉得有用的我一定会抽时间加上去,再次感谢各位的支持!!!



📚 小说下载器

🎯 它能干嘛

1. 搜书:一键全站搜
自动并发搜索你配置的所有书源,多站结果自动去重。输入书名,坐等小说自己排队。

2. 下载:快、稳、还能断点续传

  • 多线程并发下载,5 个章节同时跑,效率拉满
  • 失败自动重试 3 次,请求带间隔,对网站温柔一点
  • 断点续传:下到一半关软件?下次接着下,不从头再来
  • 想停就停,随时取消,不跟你客气

3. 书源管理:网站挂了?自己动手加

  • 支持添加/编辑/删除书源,右键菜单一步到位
  • 每个书源一个「测试」按钮,一键测域名通不通、是不是笔趣阁模板
  • 启用/禁用开关,哪个站不稳就关掉哪个,眼不见心不烦
  • 还能按「全部/已启用/已禁用」筛选,书源多了也不慌

4. 导出:TXT 也行,EPUB 也行

  • 纯 TXT:墨水屏、老年机都能看
  • EPUB:带封面、带目录、带作者,Kindle / 微信读书都认
  • 导出完自动清理数据库,不留垃圾

5. 界面:简单美观

  • 现代化界面,深色/浅色跟随系统

⚠️ 先说清楚

  • 目前仅支持笔趣阁模板书源
  • 需要联网、需要配置书源域名才能用

🙏 免责声明

本工具仅供学习交流使用,请支持正版。作者只是把下载这件事做成了「一键」,别的概不负责(逃~)

如果你觉得这个下载器对你有用,麻烦留个足迹再走,小弟跪谢!!!



下载链接:https://wwalt.lanzouw.com/iBBaR43z5rlg  密码:52pj

免费评分

参与人数 347吾爱币 +312 热心值 +314 收起 理由
U2020 + 1 我很赞同!
jones.w + 1 + 1 谢谢@Thanks!
afuml + 1 + 1 谢谢@Thanks!
xdx11520 + 1 + 1 我很赞同!
gjh100111 + 1 + 1 谢谢@Thanks!
jens2k1 + 1 + 1 谢谢@Thanks!
0721God + 1 + 1 可以下载任意小说后缀的吗?
yeeLng + 1 + 1 谢谢@Thanks!
zhghoi + 1 + 1 热心回复!
alkamos + 1 + 1 谢谢@Thanks!
vhhg + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
随便· + 1 谢谢@Thanks!
golddd808 + 1 + 1 我很赞同!
niceice + 1 鼓励转贴优秀软件安全工具和文档!
weplayro + 1 + 1 谢谢@Thanks!
miniport + 1 谢谢@Thanks!
confiant + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
timbull + 1 我很赞同!
ClenchSword + 1 + 1 谢谢@Thanks!
alanorpeggy + 1 + 1 我很赞同!
liwei69288 + 1 + 1 我很赞同!
Eden001 + 1 + 1 我很赞同!
wojianliu + 1 谢谢@Thanks!
iksnxm + 1 + 1 我很赞同!
质感老乡周渝民 + 1 谢谢@Thanks!
BTC456 + 1 + 1 我很赞同!
酷威 + 1 + 1 我很赞同!
ma8967 + 1 + 1 谢谢@Thanks!
zhangwei6929 + 1 + 1 谢谢@Thanks!
cicomaipu + 1 + 1 我很赞同!
Yiduoyun7 + 1 谢谢@Thanks!
nikko + 1 + 1 谢谢@Thanks!
BeginForEnd + 1 + 1 谢谢@Thanks!
66pojie + 1 + 1 我很赞同!
天非寒 + 1 + 1 热心回复!
homsoon + 1 + 1 我很赞同!
minizyp + 1 + 1 我很赞同!
zl123221 + 1 + 1 我很赞同!
paoctoly + 1 + 1 我很赞同!
比克爱地球 + 1 谢谢@Thanks!
guagua000 + 1 + 1 我很赞同!
junjia215 + 1 + 1 谢谢@Thanks!
suishuo + 1 + 1 我很赞同!
haiqurunjia + 1 + 1 我很赞同!
AGAO + 1 + 1 我很赞同!
3128202512 + 1 谢谢@Thanks!
wk383 + 1 + 1 谢谢@Thanks!
acptdzz + 1 + 1 谢谢@Thanks!
AlphaGo + 1 + 1 谢谢@Thanks!
mmorpg + 1 + 1 谢谢@Thanks!
Stily621633 + 1 + 1 我很赞同!
xxmajt98 + 1 + 1 谢谢@Thanks!
GTH1314 + 1 我很赞同!
yuyang929 + 1 谢谢@Thanks!
shitouya + 1 谢谢@Thanks!
DANHUANGJIANGYO + 1 + 1 谢谢@Thanks!
BACHE-FEI + 1 + 1 谢谢@Thanks!
lizhenguogouw + 1 + 1 我很赞同!
asdfkkkk + 1 + 1 谢谢@Thanks!
bwl269 + 1 + 1 谢谢@Thanks!
福森108 + 1 + 1 谢谢@Thanks!
woiliao + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sste77 + 1 + 1 谢谢@Thanks!
rrdx0937 + 1 + 1 谢谢@Thanks!
flyhigh + 1 + 1 谢谢@Thanks!
zfd914 + 1 + 1 热心回复!
zaixian056 + 1 用心讨论,共获提升!
一气动山河 + 1 + 1 谢谢@Thanks!
Flity + 1 + 1 热心回复!
woaigaoqing + 1 + 1 我很赞同!
tx118168 + 1 + 1 我很赞同!
KuTOUjiang + 1 我很赞同!
xtssh87127 + 1 + 1 我很赞同!
liyuanzhe1210 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
smallbat + 1 + 1 我很赞同!
zfzzqlx + 1 热心回复!
禾水木 + 1 + 1 热心回复!
110984 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
hungld + 1 + 1 谢谢@Thanks!
lishuofang + 1 + 1 谢谢@Thanks!
cassblanca + 1 谢谢@Thanks!
dadao815 + 1 + 1 用心讨论,共获提升!
Greedy + 1 + 1 我很赞同!
xiaaxi + 1 + 1 谢谢@Thanks!就好这一口
colin6586 + 1 + 1 谢谢@Thanks!
addonejy + 1 我很赞同!
varsxz123 + 1 + 1 我很赞同!
JustFI987 + 1 + 1 谢谢@Thanks!
fk1 + 1 + 1 我很赞同!
Dove702 + 1 + 1 谢谢@Thanks!
C1C9527 + 1 + 1 我很赞同!
yyinsy + 1 热心回复!
hmzx0000 + 1 + 1 谢谢@Thanks!
大佬带带我z + 1 + 1 我很赞同!
degas8888 + 1 + 1 热心回复!
MayMayHai8971 + 1 + 1 用心讨论,共获提升!
Bystender + 1 + 1 我很赞同!
waged0906 + 1 用心讨论,共获提升!
唐小样儿 + 1 + 1 我很赞同!
jiaoshi + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
唯爱卿颜 发表于 2026-8-13 22:57
可惜现在的网络小说书源全被污染了,前面好好的,后面收费章节全是乱七八糟的~
推荐
KevinWallce425 发表于 2026-8-14 07:29
以前非常需要这种工具,现在一个阅读app全部搞定了。。。。。
推荐
遇见你 发表于 2026-8-14 07:03
之前让ai写的半成品,临时用下,换网站就扔进去再改下,

[Python] 纯文本查看 复制代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
小说下载器 (适配醉爱小说网 www.zuiaixs.net)
使用方法:python3 novel_downloader.py
"""

import requests
import re
import time
import os
from concurrent.futures import ThreadPoolExecutor, as_completed

# ==================== 配置区(修改这里下载其他小说) ====================
BASE_URL = "https://www.zuiaixs.net"
BOOK_ID = "2024"              # 书籍ID,从目录页URL获取
BOOK_NAME = "不良之年少轻狂"  # 书名
AUTHOR = "抚琴的人"           # 作者
OUTPUT_FILE = f"{BOOK_NAME}.txt"
MAX_WORKERS = 5               # 并发数(别太大,防封)
DELAY = 1                     # 每章启动间隔(秒)
# ======================================================================

HEADERS = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'Referer': BASE_URL,
}

session = requests.Session()
session.headers.update(HEADERS)


def get_catalog():
    """
    获取章节目录(提取所有 <dd><a> 链接)
    返回章节列表,每个元素为 {'title': 标题, 'url': 完整URL, 'chapter_id': 章节ID}
    """
    url = f"{BASE_URL}/read/{BOOK_ID}/"
    print(f"正在获取目录: {url}")

    try:
        resp = session.get(url, timeout=30)
        resp.encoding = 'utf-8'
        html = resp.text

        # 匹配所有 <dd><a href="/read/2024/数字.html">标题</a>
        pattern = rf'<dd><a href="/read/{BOOK_ID}/(\d+\.html)"[^>]*>([^<]+)</a></dd>'
        matches = re.findall(pattern, html)

        chapters = []
        seen = set()
        for chapter_id, title in matches:
            if chapter_id not in seen:
                seen.add(chapter_id)
                chapters.append({
                    'title': title.strip(),
                    'url': f"{BASE_URL}/read/{BOOK_ID}/{chapter_id}",
                    'chapter_id': chapter_id.replace('.html', '')
                })

        print(f"共找到 {len(chapters)} 个章节")
        return chapters

    except Exception as e:
        print(f"获取目录失败: {e}")
        return []


def fetch_page_content(url):
    """获取单页HTML内容"""
    try:
        resp = session.get(url, timeout=30)
        resp.encoding = 'utf-8'
        return resp.text
    except Exception:
        return None


def extract_content_from_page(html):
    """从单页HTML中提取正文(<div id="content"> 中的 <p> 标签)"""
    if not html:
        return ""

    # 定位 id="content"
    start = html.find('id="content"')
    if start == -1:
        return ""

    start = html.find('>', start) + 1
    end = html.find('</div>', start)
    if end == -1:
        return ""

    content_html = html[start:end]

    # 提取所有 <p> 标签中的内容
    p_pattern = r'<p[^>]*>(.*?)</p>'
    p_matches = re.findall(p_pattern, content_html, re.DOTALL)

    content_lines = []
    for p_text in p_matches:
        clean_text = re.sub(r'<[^>]+>', '', p_text)
        clean_text = clean_text.strip()
        # 过滤广告
        ad_keywords = [
            '小主,这个章节后面还有哦', '请点击下一页继续阅读',
            '后面更精彩', '本章未完', '点击下一页'
        ]
        if clean_text and not any(ad in clean_text for ad in ad_keywords):
            content_lines.append(clean_text)

    return '\n\n'.join(content_lines)


def download_chapter(chapter, index, total):
    """下载单章(自动处理分页)"""
    title = chapter['title']
    chapter_id = chapter['chapter_id']
    base_url = f"{BASE_URL}/read/{BOOK_ID}/{chapter_id}"

    all_content = []
    page_num = 1

    while True:
        if page_num == 1:
            url = f"{base_url}.html"
        else:
            url = f"{base_url}_{page_num}.html"

        html = fetch_page_content(url)
        if html is None:
            break

        content = extract_content_from_page(html)
        if not content:
            break

        all_content.append(content)
        page_num += 1

    full_content = '\n\n'.join(all_content)

    if full_content:
        print(f"  [{index+1}/{total}] &#10003; {title} ({len(full_content)} 字)")
        return {'title': title, 'content': full_content, 'success': True}
    else:
        print(f"  [{index+1}/{total}] &#10007; {title} (内容为空)")
        return {'title': title, 'content': '', 'success': False}


def download_all(chapters):
    """并发下载所有章节"""
    results = []
    total = len(chapters)

    print(f"\n开始下载,共 {total} 个章节,并发数: {MAX_WORKERS},间隔: {DELAY}秒")
    print("=" * 60)

    with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
        future_to_idx = {}
        for i, ch in enumerate(chapters):
            future = executor.submit(download_chapter, ch, i, total)
            future_to_idx[future] = i
            time.sleep(DELAY)

        for future in as_completed(future_to_idx):
            idx = future_to_idx[future]
            try:
                result = future.result()
                results.append((idx, result))
            except Exception as e:
                print(f"  第{idx+1}个章节下载异常: {e}")

    results.sort(key=lambda x: x[0])
    return [r[1] for r in results]


def save_to_txt(results, output_file):
    """保存为TXT文件"""
    with open(output_file, 'w', encoding='utf-8') as f:
        f.write(f"《{BOOK_NAME}》\n")
        f.write(f"作者:{AUTHOR}\n")
        f.write(f"来源:醉爱小说网 (www.zuiaixs.net)\n")
        f.write(f"总章节数:{len(results)} 章\n")
        f.write("=" * 50 + "\n\n")

        success_count = 0
        for result in results:
            if result['success']:
                f.write(f"\n{result['title']}\n")
                f.write("-" * 40 + "\n\n")
                f.write(result['content'])
                f.write("\n\n")
                success_count += 1

        f.write("\n\n" + "=" * 50 + "\n")
        f.write(f"全部下载完毕\n")
        f.write(f"成功下载: {success_count}/{len(results)} 章\n")

    return success_count


def main():
    print("=" * 60)
    print(f"  《{BOOK_NAME}》小说下载器 (适配醉爱小说网)")
    print(f"  作者: {AUTHOR}")
    print("=" * 60)

    chapters = get_catalog()
    if not chapters:
        print("获取目录失败,请检查网络或网站是否可访问")
        return

    results = download_all(chapters)

    print("\n" + "=" * 60)
    print("正在保存文件...")
    success_count = save_to_txt(results, OUTPUT_FILE)

    if os.path.exists(OUTPUT_FILE):
        file_size = os.path.getsize(OUTPUT_FILE) / 1024
        print(f"\n&#10003; 保存完成: {OUTPUT_FILE}")
        print(f"  文件大小: {file_size:.1f} KB")
        print(f"  成功下载: {success_count}/{len(chapters)} 章")
    else:
        print("\n&#10007; 保存失败,请检查写入权限。")
    print("=" * 60)


if __name__ == '__main__':
    main()
推荐
 楼主| PJlay 发表于 2026-8-15 20:01 |楼主
RomanceBin 发表于 2026-8-15 18:24
要是有书源就好了

自带的笔趣阁书源,后面会考虑加入更多的书源
推荐
hzgsueface 发表于 2026-8-13 23:31
PJlay 发表于 2026-8-13 23:04
有自带的笔趣阁书源

谢谢答复  看来还要去多找点书源丰富下
推荐
hzgsueface 发表于 2026-8-13 23:01
要是有书源就好了

点评

yckceo点vip  发表于 2026-8-18 17:31
5#
nitouche 发表于 2026-8-13 22:59
不错,感谢楼主分享
6#
bigbigwei 发表于 2026-8-13 23:01
这个正是我需要的,感谢大佬分享啊。
7#
 楼主| PJlay 发表于 2026-8-13 23:04 |楼主
hzgsueface 发表于 2026-8-13 23:01
要是有书源就好了

有自带的笔趣阁书源
8#
ystyst110 发表于 2026-8-13 23:23
我喜欢,这个很不错
9#
zyt123379917 发表于 2026-8-13 23:34
这个就真的是神器了,多年老书虫,太感谢了
10#
wns563 发表于 2026-8-13 23:51
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-12 20:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表