【2021.08.28】易语言学习打卡-小说采集器
本帖最后由 2463308417 于 2021-8-28 14:50 编辑【2021.08.28】 星期五继续打卡
大家好,我又来了!
昨天和前天分别学习了JSON和正则的应用,今天学了单线程和多线程的区别。制作了项目:小说采集器。
我是跟随代号1126学习的,看过视频的都知道里面只讲解了单线程的小说采集器,在我学了多线程之后,我将其改成了多线程的方式。
源码如下:
.版本 2
.支持库 EThread
.支持库 iext
.支持库 spec
.程序集 窗口程序集_窗口1
.子程序 _窗口1_创建完毕
.子程序 _按钮1_被单击
.局部变量 i, 整数型
.局部变量 线程数, 整数型
.局部变量 总线程数, 整数型
.局部变量 完成的任务数, 整数型
.循环判断首 ()
.如果真 (在运行的线程数 < 到整数 (编辑框1.内容))
在运行的线程数 = 在运行的线程数 + 1
启动线程 (&多线程采集小说, , )
完成的任务数 = 完成的任务数 + 1
.如果真结束
.如果真 (完成的任务数 ≥ 到整数 (超级列表框1.取表项数 ()))
信息框 (“执行完成”, 0, , )
跳出循环 ()
.如果真结束
处理事件 ()
.循环判断尾 (1 = 1)
.子程序 多线程采集小说
.局部变量 小说正则, 正则表达式类
.局部变量 返回文本, 文本型
.局部变量 i, 整数型
.局部变量 索引, 整数型
延迟 (3000)
索引 = 索引 - 1
返回文本 = 文本_取文本右边_L (到文本 (网页_访问_对象 (“http://www.qishu.me/”, , , , , , , , , , , , , , , , )), “headcontainer1”, )
小说正则.创建 (#网页小说, 返回文本, , , , )
.计次循环首 (小说正则.取匹配数量 (), i)
索引 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (索引, 0, 到文本 (索引 + 1))
超级列表框1.置标题 (索引, 1, 小说正则.取子匹配文本 (i, 2, ))
超级列表框1.置标题 (索引, 2, “http://www.qishu.me/” + 小说正则.取子匹配文本 (i, 1, ))
超级列表框1.置标题 (索引, 3, “https://xiazai.xqishu.com/txt/” + 文本_取左边 (小说正则.取子匹配文本 (i, 2, ), “TXT”, , ) + “.txt”)
.计次循环尾 ()
在运行的线程数 = 在运行的线程数 - 1
.子程序 _超级列表框1_右键单击表项
弹出菜单 (菜单, , )
.子程序 _下载_被选择
.判断开始 (超级列表框1.取标题 (超级列表框1.现行选中项, 3) ≠ “”)
写到文件 (取运行目录 () + “\小说目录\” + 超级列表框1.取标题 (超级列表框1.现行选中项, 1) + “.txt”, 网页_访问_对象 (超级列表框1.取标题 (超级列表框1.现行选中项, 3), , , , , , , , , , , , , , , , ))
信息框 (“下载完成!”, 0 + 64, “通知:”, )
.默认
信息框 (“小说还没有采集!”, 0 + 64, “通知:”, )
.判断结束
不知道我改的多线程这种方式是否正确?希望有大神可以指点一下。
这里还要分享一个网页方面用处挺大的命令,这个命令是视频自带模块里的:
.版本 2
' 下载 章节小说时
' 遇到html的标签在正文中的时候使用命令 网页_取文本_dom ()
' 命令:网页_取文本_dom ()--可以将内容中的 html 标签全部去掉
ps:说到这我想起以前学习web的时候,学过手写DOM库。当时的项目是做一个浏览器前航,用到了很多dom的命令。
github:
浏览器项目展示图:
如果想要我做的浏览器项目,回复一下:浏览器,我明天会在签到的时候分享出来。
6666666666666666666666 dinorye 发表于 2021-8-29 12:42
6666666666666666666666
{:2_34:} 你也6666666666666666666666 66666666666666666666 oak圣诞节卡就是看到了家里 楼主发贴辛苦了,谢谢楼主分享!我觉得易语言吧是注册对了! 谢谢分享
页:
[1]