Closed qxqycb closed 1 month ago
唔,好像也不是不行。 其实速度慢是因为防止封ip设置的随机延迟。我或许可以合并一下新功能?
OK 我可以试一下在你v1.05的基础上修改一下
其实保存为txt的本质就是将json格式的文件{章节名:章节内容,…}转换为纯文本,只要换方式处理就可以实现分章保存。
用正则表达式,之前做过 pattern = r'第[0-9一二三四五六七八九十百千万零一二三四五六七八九十]+\s*章|番外'
def split_novel(file_path, pattern, target_encoding='utf-8'): try:
with open(file_path, 'rb') as f:
raw_content = f.read()
detected_encoding = chardet.detect(raw_content)['encoding'] or target_encoding
# 读取文件内容
with open(file_path, 'r', encoding=detected_encoding) as file:
content = file.read()
# 使用正则表达式分割内容
chapters = re.split(pattern, content)
# 过滤掉空的章节标题和内容
chapters = [chap.strip() for chap in chapters if chap.strip()]
# 保存章节到新文件
for chapter_number, chapter in enumerate(chapters, start=1):
if chapter: # 确保章节内容不为空
chapter_filename = f"{os.path.splitext(file_path)[0]}_第_{chapter_number}.txt"
with open(chapter_filename, 'w', encoding=target_encoding) as new_file:
new_file.write(chapter)
print(f"章节 {chapter_number} 已保存为: {chapter_filename}")
except Exception as e:
print(f"处理文件时发生错误: {e}")
唔,好像也不是不行。 其实速度慢是因为防止封ip设置的随机延迟。我或许可以合并一下新功能?
关于防止封ip,我试了几十次,一次性下了一千多章,也没有被封,可能不用考虑吧
我的意思其实是使用json模块读取 小说名.json 后,就有了一个完整内容的字典,可以直接调用不用再分章节。
理解了,也可以
好了,到点睡觉,明日细谈
晚安,祝你做个好梦! 提个意见:把record.json和config.json用一个单独的文件夹装起来;把下载的小说用另一个文件夹装。 以上操作可以防止一些用户不懂这些是什么然后删了
1.把record.json和config.json用一个单独的文件夹(data)储存; 2.把下载的小说用另一个文件夹(“小说名+.txt”)储存; 3.把用于检查更新的(小说名+.json)的json文件储存"data"文件夹中新建一个"小说名"文件夹中; 4.把open方式改为with open,防止打开和保存文件时出错 源码.txt
早上根本打不开github,现在终于可以看了。你可以发一个拉取请求合并代码。
我把你的代码稍微改了改,恢复了断点重下的功能并减少了磁盘占用。删除了sort来保持章节顺序等。 但是,使用pyinstaller打包后居然无法创建文件夹! 或许只能用batch命令行试一下了。
还在使用nuitka尝试中
你把你改的代码发给我,我试一试
ok,解决了
只要使用相对路径就行了
可以添加一个退出的代码,例如: print('\n输入书的id直接下载\n输入下面的数字进入其他功能:') print('1. 更新小说列表') print('2. 设置') print('3.退出') elif inp == '3': print('退出程序')
break
行
防止用户下载过程中强制退出
其实没关系,毕竟每5章存一次,打开就可以继续下
那么我发布了啊
等一下
算了,发吧
天呐,我还以为是我的问题。
作者你好! 我在昨天给您的项目fanqienovel-downloader-v1.0.3添加了一个新功能:1. 正常模式 - 下载整本小说到一个文件;2. 分章保存模式 - 每个章节保存为单独的文件, 并且速度也加快了, 但是原来的保存一个json文件来更新的功能没有了 望准许 源码.txt