精易论坛

标题: 每日一贴:十六课懒人听书批量下载器 [打印本页]

作者: 时光海苔    时间: 2019-2-13 17:43
标题: 每日一贴:十六课懒人听书批量下载器
知识点:网络传送支持库,正则,数据类型遗留问题:很多不能下载的 ,就比如这个懒人听书网,很多页面的下载链接带token,是没办法实现下载的 ,没找到解决办法
贴源码-------------------------------------------------------

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
小说数据类型_小说  
下载下载对象  
当前下载索引整数型  
单章小说总大小整数型  
单章已接收大小整数型  
保存目录文本型  
下载完成逻辑型  

子程序名返回值类型公开备 注
_按钮_获取_被单击  
变量名类 型静态数组备 注
i整数型 
总页数整数型 
小说.ID = 到整数 (编辑框1.内容)
子程序_获取基本信息 ()
标签3.标题 = 小说.名称
标签4.标题 = 到文本 (小说.章节数)
标签6.标题 = 小说.作者
标签8.标题 = 小说.主播
总页数 = 四舍五入 (小说.章节数 ÷ 10, 0)
计次循环首 (总页数 + 1, i)
子程序_获取章节 (i - 1)
计次循环尾 ()
子程序名返回值类型公开备 注
子程序_获取基本信息  
变量名类 型静态数组备 注
网页源码文本型 
网页源码 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://www.lrts.me/book/”到文本 (小说.ID), 1, , , , , , , , , , , , , , , )))
小说.章节数 = 到整数 (文本_取出中间文本 (网页源码, “var totalCount='”, “',page=0,pageSize”, , ))
小说.名称 = 文本_取出中间文本 (网页源码, , “<i class="”" +="" #引号 ="" “d-status”,="" ,="" )
' 调试输出 (小说.名称)
小说.作者 = 文本_取出中间文本 (网页源码, “[url=]”, “[/url]”, , )
小说.主播 = 文本_取出中间文本 (网页源码, “class=”#引号“g-user”#引号“>”, “”, , )
子程序名返回值类型公开备 注
子程序_获取章节  
参数名类 型参考可空数组备 注
page整数型
变量名类 型静态数组备 注
网页源码文本型 
JSON类_json 
返回内容文本型 
成员数整数型 
i整数型 
临时索引整数型 
网页源码 = 到文本 (网页_访问_对象 (“http://www.lrts.me/ajax/book/”到文本 (小说.ID)“/”到文本 (page)“/10”, 1, , , , , , , , , , , , , , , ))
JSON.解析 (网页源码)
成员数 = JSON.成员数 (“data.data”)
计次循环首 (成员数, i)
返回内容 = JSON.取通用属性 (“data.data[”到文本 (i - 1)“].resName”, )
' 调试输出 (返回内容)
返回内容 = 编码_usc2到ansi_EX (返回内容, “&#x”)
返回内容 = 文本_替换 (返回内容, , , , “;”, “”, , , , , , , , )
临时索引 = 超级列表框1.插入表项 (-1, JSON.取通用属性 (“data.data[”到文本 (i - 1)“].resId”, ), , , , )
超级列表框1.置标题 (临时索引, 1, 返回内容)
超级列表框1.置标题 (临时索引, 2, “待下载”)
计次循环尾 ()
' 调试输出 (返回内容)
子程序名返回值类型公开备 注
_按钮_下载_被单击  
变量名类 型静态数组备 注
i整数型 
保存目录 = 取运行目录 ()“\” + 小说.名称
判断 (目录_是否存在 (保存目录))
目录_创建 (保存目录)


时钟2.时钟周期 = 200
时钟1.时钟周期 = 1000
子程序下载 ()
子程序名返回值类型公开备 注
子程序_配置信息任务参数 
参数名类 型参考可空数组备 注
下载地址文本型
保存路径文本型
变量名类 型静态数组备 注
任务任务参数 
任务.文件地址 = 下载地址
任务.默认线程数 = 10
' 调试输出 (超级列表框1.取标题 (当前下载索引, 1))
任务.本地文件路径 = 保存路径 + “\” + 超级列表框1.取标题 (当前下载索引, 1)“.mp3”
任务.交互回调函数 = &子程序_交互回调函数
返回 (任务)
子程序名返回值类型公开备 注
子程序_交互回调函数  
参数名类 型参考可空数组备 注
消息类型整数型
线程信息整数型
第三个参数整数型
第四个参数整数型
对象信息整数型
判断 (消息类型 = #传送常量 .下载上传开始)  ' 3
单章小说总大小 = 第三个参数
判断 (消息类型 = #传送常量 .下载上传结束)  ' 4
下载完成 = 真
单章已接收大小 = 0
判断 (消息类型 = #传送常量 .收到数据)
单章已接收大小 = 单章已接收大小 + 第三个参数
超级列表框1.置标题 (当前下载索引, 2, 到文本 (四舍五入 (单章已接收大小 ÷ 单章小说总大小 × 100, )) + “%”)



子程序名返回值类型公开备 注
_时钟1_周期事件  
判断 (下载完成 = )
进度条1.位置 = 四舍五入 (当前下载索引 ÷ 超级列表框1.取表项数 () × 100, )
超级列表框1.置标题 (当前下载索引, 2, “已下载”)
判断 (超级列表框1.取表项数 () > 当前下载索引)
' 调试输出 (当前下载索引)
当前下载索引 = 当前下载索引 + 1
子程序下载 ()
下载完成 = 假
时钟1.时钟周期 = 0
时钟2.时钟周期 = 0
信息框 (“下载完成”, 0, , )




子程序名返回值类型公开备 注
子程序_下载速度转换双精度小数型 
参数名类 型参考可空数组备 注
下载速度双精度小数型
下载速度 = 下载速度 ÷ (1024 × 1024)
下载速度 = 四舍五入 (下载速度, 2)
返回 (下载速度)
子程序名返回值类型公开备 注
子程序下载  
变量名类 型静态数组备 注
下载地址文本型 
章节id文本型 
网页源码文本型 
JSON类_json 
章节id = 超级列表框1.取标题 (当前下载索引, 0)
网页源码 = 到文本 (网页_访问_对象 (“http://www.lrts.me/ajax/path/4/”到文本 (小说.ID)“/” + 章节id, , , , , , , , , , , , , , , , ))
JSON.解析 (网页源码)
下载地址 = JSON.取通用属性 (“data”, )
' 调试输出 (下载地址)
下载.增加新任务 (子程序_配置信息 (下载地址, 保存目录 + “\”))
子程序名返回值类型公开备 注
_时钟2_周期事件  
变量名类 型静态数组备 注
下载速度双精度小数型 
下载速度 = 下载.取下载速度 ()
下载速度 = 子程序_下载速度转换 (下载速度)
标签10.标题 = “下载速度”到文本 (下载速度)“M”


i支持库列表   支持库注释   
downlib网络传送支持库
iext扩展界面支持库一


懒人听书.rar

183.57 KB, 下载次数: 63, 下载积分: 精币 -2 枚


作者: carter09    时间: 2019-2-13 18:02
高手 感谢分享
作者: panchao126    时间: 2019-2-13 18:20
谢谢分享,下载学习一下
作者: 一尘不染    时间: 2019-2-13 21:52
谢谢分享,下载学习一下
作者: Foreign000    时间: 2019-2-14 10:25
下载显示百分比好评!
作者: helingyuan    时间: 2019-2-14 12:08
支持,感谢分享
作者: fusiyon    时间: 2019-2-14 13:16
高手 感谢分享
作者: hanson1025    时间: 2019-2-14 14:41
收费的可以下载吗?
作者: 5130263    时间: 2019-2-14 17:21
支持,感谢分享!
作者: 海南婉儿    时间: 2019-2-16 07:37
下载学习一下
作者: sampo    时间: 2019-2-16 20:39
感谢楼主发布原创作品,一定好好学习,天天向上!
作者: 外星星人    时间: 2019-2-21 12:40
感谢发布原创作品,一定好好学习,天天向上
作者: 南下    时间: 2019-2-22 17:37
整一个56听书的下载呗
作者: 时光海苔    时间: 2019-2-22 19:29
南下 发表于 2019-2-22 17:37
整一个56听书的下载呗

都一样呀 参考做下就行
作者: 南下    时间: 2019-2-22 20:46
时光海苔 发表于 2019-2-22 19:29
都一样呀 参考做下就行

不一样,你可以试试




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