基于易语言实现的小说完整爬取

一.前言

之前我曾做了一款小说下载器,并且在B站上发布了视频介绍(是的,我无耻的用小号给自己三连)

27092a7b59764556bdd8628d1efe4dfd.jpg

 视频链接(短链接)

正如视频标题所说,软件的基础是网页源码分析,因为使用了精易模块的“网页_访问s()”命令,故而下载速度有些慢


二.为什么用精易模块

其实本来我是坚持不用模块的,但在这款软件的制作中,我发现原本易语言自带的 http读文本()只能返回空数据,于是便找到了精易模块,使用了 网页_访问s()命令

三.代码讲解

1.获取

1.1代码

小说链接为“ https://www.rikopj.com/book/70380/”,现在貌似访问不到了

你可以换个网站,当然,其他的一些东西肯定要跟着变

代码:

.版本 2

.子程序 _按钮1_被单击
.局部变量 源码, 文本型
.局部变量 计次, 整数型
.局部变量 长度, 整数型
.局部变量 代号, 文本型

' https://www.rikopj.com/book/70380/
编辑框3.加入文本 (“开始网络请求” + #换行符)
编辑框2.内容 = 网页_访问S (编辑框1.内容, , , , , , , , , , , , , , , , , , , , )
编辑框3.加入文本 (“页面源码索取完毕” + #换行符)
源码 = 编辑框2.内容
编辑框3.加入文本 (“开始截取列表” + #换行符)
源码 = 取文本右边 (源码, 取文本长度 (源码) - 寻找文本 (源码, “<li>”, , 假) + 1)
源码 = 取文本左边 (源码, 倒找文本 (源码, “</li>”, , 假) + 4)
编辑框3.加入文本 (“列表内容截取完毕” + #换行符)
编辑框2.内容 = 源码
编辑框3.加入文本 (“开始章节请求” + #换行符)
.计次循环首 (文本_取出现次数 (源码, “<li>”), 计次)
    编辑框3.加入文本 (“开始请求第” + 到文本 (计次) + “章” + #换行符)
    长度 = 寻找文本 (源码, #引号 + “>”, , 假) - 取文本长度 (“<li><a href=”) - 2
    代号 = 取文本中间 (源码, 取文本长度 (“<li><a href=”) + 2, 长度)
    编辑框3.加入文本 (“获取尾号 ” + 代号 + #换行符)
    编辑框3.加入文本 (“开始下载 ” + 代号 + #换行符)
    下载文章 (编辑框1.内容, 代号, 计次)
    编辑框3.加入文本 (“下载完毕 ” + 代号 + #换行符)
    处理事件 ()
.计次循环尾 ()

1.2解析

“编辑框3.加入文本 ()”的作用是让用户看到进度

先通过网页_访问s来请求html数据

获取后,存入“源码”变量,将章节列表的数据内容取出

我在这里使用的是取左取右,但既然是用了精益模块,你当然可以直接文本_取出中间文本 ()

下面,将“源码”变量写到编辑框内,让用户可以看到

用文本_取出现次数()来判断有几章,从而进行循环,还是找到对应的超文本标识,从而获得对应章节的代号

找到章节的代号就存起来,使用下载文章()子程序下载

最后加上处理事件()防止卡顿

2.下载

2.1代码

.版本 2

.子程序 下载文章
.参数 链接, 文本型
.参数 代号, 文本型
.参数 次数, 整数型
.局部变量 文章, 文本型
.局部变量 内容, 文本型
.局部变量 题目, 文本型

文章 = 网页_访问S (链接 + 代号, , , , , , , , , , , , , , , , , , , , )
编辑框3.加入文本 (代号 + “ 获取完毕” + #换行符)
题目 = 文本_取出中间文本 (文章, #标题头, #标题尾)
内容 = 文本_取出中间文本 (文章, #文章头, #文章尾)
编辑框3.加入文本 (代号 + “ 截取成功” + #换行符)
文章 = 题目 + #换行符 + 内容
文章 = 子文本替换 (文章, “&nbsp;”, “ ”, , , 真)
编辑框3.加入文本 (代号 + “ 空格书写规则更改成功” + #换行符)
文章 = 子文本替换 (文章, “<br/>”, #换行符, , , 真)
编辑框3.加入文本 (代号 + “ 换行符书写规则更改成功” + #换行符)
编辑框4.内容 = 文章
' ---------------------------------------------------
写到文件 (取运行目录 () + “\down\” + 到文本 (次数) + “.txt”, 到字节集 (文章))
编辑框3.加入文本 (代号 + “ 写出成功” + #换行符)
' ---------------------------------------------------

2.2解析

很简单,还是网页_访问s获取html数据

章节+代号大家不一定理解,刚刚的代号并不是链接整体,而是例如“2034501”这样的玩意,加到整本书的链接后面才能做单章链接使用

还是同样的取出操作,很简单

涉及到几个常量,我会放到最后的

合并内容,替换掉标识字符来作为可以使用的字符

写出到编辑框4里面

到最后,下载文章到对应目录,完成下载

3.常量表

.版本 2

.常量 标题头, "<文本长度: 32>"
.常量 文章头, "<文本长度: 47>"
.常量 文章尾, "<文本长度: 109>"
.常量 标题尾, "<文本长度: 82>"

3.1标题头

<div class="h1title">
                    <h1>

3.2文章头

<div id="htmlContent" class="contentbox clear">

3.3文章尾

</div>
                <div class="banner"><center><script type="text/javascript">book_bottom();</script></center></div>

3.4标题尾

</h1>
                </div>
                <div class="banner"><center><script type="text/javascript">

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值