精易论坛

标题: 爱看小说网小说下载、下载阅读音频 [打印本页]

作者: 明天会更好zt    时间: 2020-3-24 08:22
标题: 爱看小说网小说下载、下载阅读音频
下载爱看小说网(https://www.aikantxt.la/)的小说,并将下载的文本转换成音频文件,使用了精易模块、elss的HTML解析模块


源码.e (856.9 KB, 下载次数: 21)


  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
集_章节章节0 
集_路径文本型  

子程序名返回值类型公开备 注
_按钮_取目录_被单击  
获取章节清单 (编辑框_目录地址.内容, 集_章节)
如果 (取数组成员数 (集_章节) > 0)
章节到选择列表框 ()
信息框 (“未能获取到章节信息”, 0, , )

子程序名返回值类型公开备 注
获取章节清单  
参数名类 型参考可空数组备 注
url文本型爱看小说网目录地址,如:https://www.aikantxt.la/aikan45482/
章节清单章节用于接收获取的章节信息
变量名类 型静态数组备 注
i整数型 
elssElss_EX_Doc 
html文本型 
nodesElss_EX_Doc 
临时章节章节 
id文本型0
html = 功能_获取章节HTML (url)
数组清零 (章节清单)
如果真 (elss.load_ex (html))
nodes = elss.Find_ex (“#list>dl>dd>a”)
进度条1.最大位置 = nodes.Length ()
计次循环首 (nodes.Length (), i)
临时章节.name = nodes.Get (i - 1).Text ()
id = 分割文本 (文本_替换 (nodes.Get (i - 1).Attr (“href”), , , , “/aikan”, “”, “.html”, “”), “/”, )
临时章节.nbid = id [1]
临时章节.crid = id [2]
如果真 (功能_章节重复检测 (章节清单, 临时章节))
加入成员 (章节清单, 临时章节)

处理事件 ()
进度条1.位置 = i
计次循环尾 ()

子程序名返回值类型公开备 注
功能_章节重复检测逻辑型 重复返回假,不重复返回真
参数名类 型参考可空数组备 注
章节数组章节
章节章节
变量名类 型静态数组备 注
i整数型 
计次循环首 (取数组成员数 (章节数组), i)
如果真 (章节数组 [i].crid = 章节.crid)
返回 ()

计次循环尾 ()
返回 ()
子程序名返回值类型公开备 注
功能_获取章节HTML文本型 本命令由【精易网页调试助手】生成,请配合精易模块使用。
参数名类 型参考可空数组备 注
网址文本型
变量名类 型静态数组备 注
局_方式整数型 
ADD_协yi头类_POSTxx类 
局_提交协yi头文本型 
局_结果字节集 
局_返回文本型 
局_方式 = 0
ADD_协yi头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36”)
局_提交协yi头 = ADD_协yi头.获取协yi头xx ()
网页_访问S (网址, 局_方式, , , , 局_提交协yi头, , , , , , , , , , , 局_结果, , , , )
局_返回 = 到文本 (局_结果)
返回 (局_返回)
子程序名返回值类型公开备 注
下载章节  
参数名类 型参考可空数组备 注
章节清单章节
变量名类 型静态数组备 注
局_网址文本型 
局_方式整数型 
ADD_xx包类_POSTxx类 
局_提交xx文本型 
ADD_协yi头类_POSTxx类 
局_提交协yi头文本型 
局_章节内容文本型 
局_计次整数型 
局_文本文件号整数型 
局_路径文本型 
局_网址 = “https://www.aikantxt.la/content.php”
局_方式 = 1
ADD_协yi头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87 Safari/537.36”)
局_提交协yi头 = ADD_协yi头.获取协yi头xx ()
如果 (集_路径 ≠ “”)
局_路径 = 集_路径
局_路径 = 取运行目录 ()
进度条1.最大位置 = 取数组成员数 (章节清单)
计次循环首 (取数组成员数 (章节清单), 局_计次)
ADD_xx包.添加 (“nbid”, 章节清单 [局_计次].nbid)
ADD_xx包.添加 (“crid”, 章节清单 [局_计次].crid)
ADD_xx包.添加 (“fid”, “”)
局_提交xx = ADD_xx包.获取Postxx ()
局_章节内容 = 文本_替换 (到文本 (网页_访问 (局_网址, 局_方式, 局_提交xx, , , 局_提交协yi头, , , , , )), , , , “ ”, “”,
, #换行符, “:/”, “”, “电脑端:/”, “”)
局_文本文件号 = 打开文件 (局_路径 + “\文本\” + 章节清单 [局_计次].name + “.txt”, #重写, 1)
写出文本 (局_文本文件号, 局_章节内容)
关闭文件 (局_文本文件号)
输出调试文本 (“文本下载完成,开始下载音频”)
如果真 (选择框1.选中 = )
功能_朗读文本Ex (局_章节内容, 章节清单 [局_计次].name + “.mp3”, 局_路径 + “\音频\”)

处理事件 ()
进度条1.位置 = 局_计次
计次循环尾 ()
子程序名返回值类型公开备 注
功能_朗读文本Ex 保存朗读音频到文件
参数名类 型参考可空数组备 注
朗读文本文本型
保存音频文件名文本型声音文件名称,如:tts.mp3
保存文件路径文本型保存音频文件的目录,如:C:\Users\
变量名类 型静态数组备 注
局_朗读内容文本型 
局_接口地址文本型 
局_朗读文件字节集 
局_临时文件文本型 
局_保存结果逻辑型 
局_文本段文本型0
局_计次整数型 
局_录音文件段文本型0
功能_按长度分割文本 (朗读文本, 局_文本段, 300)
计次循环首 (取数组成员数 (局_文本段), 局_计次)
局_朗读内容 = 编码_URL编码 (局_文本段 [局_计次], , )
局_接口地址 = http://fanyi.baidu.com/gettts?lan=zh&text= + 局_朗读内容
局_朗读文件 = 网页_访问_对象 (局_接口地址)
局_临时文件 = 目录_取临时目录 ()校验_取md5 (到字节集 (局_朗读文件)) + “.mp3”
写到文件 (局_临时文件, 局_朗读文件)
输出调试文本 (局_临时文件)
处理事件 ()
加入成员 (局_录音文件段, 局_临时文件)
计次循环尾 ()
如果 (取数组成员数 (局_录音文件段) > 1)
文件_复制 (局_录音文件段 [1], 保存文件路径 + 保存音频文件名, )
计次循环首 (取数组成员数 (局_录音文件段) - 1, 局_计次)
文件_合并文件 (保存文件路径 + 保存音频文件名, 局_录音文件段 [局_计次 + 1], )
计次循环尾 ()

文件_复制 (局_录音文件段 [1], 保存文件路径 + 保存音频文件名, )

子程序名返回值类型公开备 注
功能_按长度分割文本 方便将大的文件内容均分为几段来处理
参数名类 型参考可空数组备 注
参_内容文本型要处理的文本内容
参_文本数组文本型用于存放返回文本的数组
参_分割长度整数型单端文本长度
变量名类 型静态数组备 注
局_内容文本型 
局_计数器整数型 
局_内容 = 文本_删除空行 (参_内容)
局_内容 = 文本_替换 (局_内容, , , , #换行符, “”)
局_内容 = 文本_折行 (局_内容, 参_分割长度, 真, 真, )
' 输出调试文本 (局_内容文本)
计次循环首 (文本_取行数 (局_内容), 局_计数器)
加入成员 (参_文本数组, 文本_取指定变量文本行 (局_内容, 局_计数器))
计次循环尾 ()
子程序名返回值类型公开备 注
章节到选择列表框  
变量名类 型静态数组备 注
局_计次整数型 
计次循环首 (取数组成员数 (集_章节), 局_计次)
选择列表框_章节.加入项目 (集_章节 [局_计次].name, 局_计次)
计次循环尾 ()
子程序名返回值类型公开备 注
_按钮_全选_被单击  
变量名类 型静态数组备 注
局_计次整数型 
计次循环首 (选择列表框_章节.取项目数 (), 局_计次)
选择列表框_章节.选中项目 (局_计次 - 1, )
计次循环尾 ()
子程序名返回值类型公开备 注
_按钮_取消_被单击  
变量名类 型静态数组备 注
局_计次整数型 
计次循环首 (选择列表框_章节.取项目数 (), 局_计次)
选择列表框_章节.选中项目 (局_计次 - 1, )
计次循环尾 ()
子程序名返回值类型公开备 注
_按钮_反选_被单击  
变量名类 型静态数组备 注
局_计次整数型 
计次循环首 (选择列表框_章节.取项目数 (), 局_计次)
选择列表框_章节.选中项目 (局_计次 - 1, 取反 (选择列表框_章节.是否被选中 (局_计次 - 1)))
计次循环尾 ()
子程序名返回值类型公开备 注
_按钮_下载_被单击  
变量名类 型静态数组备 注
局_计次整数型 
局_下载章节0
局_临时章节章节 
如果 (集_路径 ≠ “”)
计次循环首 (选择列表框_章节.取项目数 (), 局_计次)
如果真 (选择列表框_章节.是否被选中 (局_计次 - 1))
局_临时章节 = 集_章节 [局_计次]
加入成员 (局_下载, 局_临时章节)

计次循环尾 ()
如果 (取数组成员数 (局_下载) > 0)
输出调试文本 (到文本 (取数组成员数 (局_下载)))
下载章节 (局_下载)
信息框 (“未选中下载项”, 0, , )


信息框 (“未选选择保存路径”, 0, , )

子程序名返回值类型公开备 注
_按钮_路径_被单击  
集_路径 = 浏览文件夹 (“选择保存路径”, )
目录_创建 (集_路径 + “\文本”)
目录_创建 (集_路径 + “\音频”)
输出调试文本 (集_路径)


i支持库列表   支持库注释   
shell操作系统界面功能支持库








VX截图_20200324081707.png (9.55 KB, 下载次数: 4)

VX截图_20200324081707.png

作者: 明天会更好zt    时间: 2020-3-24 08:25
还需要用到精易模块和elssplus模块,附件上传的时候失败了,网上很好找。

VX截图_20200324082314.png (8.5 KB, 下载次数: 0)

VX截图_20200324082314.png

作者: 浮生醉清风    时间: 2020-3-24 10:55
你这是不是分享错板块了,这应该是在易语言源码板块发表的吧,这是乐玩板块啊
作者: 明天会更好zt    时间: 2020-3-24 16:34
浮生醉清风 发表于 2020-3-24 10:55
你这是不是分享错板块了,这应该是在易语言源码板块发表的吧,这是乐玩板块啊

确实是发错版块了!~
作者: gaoqing    时间: 2020-3-24 17:55
谢谢分享!
作者: 6551116    时间: 2020-3-24 21:30
感谢分享~~~~
作者: 原阳喜洋洋电脑    时间: 2020-3-25 16:21
昨天才看到这个网站,刚有下载的想法,没想到就有人发源码了,支持楼主
作者: 552233    时间: 2020-3-25 18:10
支持开源~!感谢分享
作者: laosijishare    时间: 2020-3-26 22:07
6666666666666666666666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4