我想你们应该疫情那么严重都在家里闲着,那我教你们写个程序? - 七彩资源网

我想你们应该疫情那么严重都在家里闲着,那我教你们写个程序?

作者: 七彩网络

全网最全的网络资源分享网站

手机扫码查看

标签:

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

准备工作

有请我们的迫害网页->https://m.tuiimg.com/

用到的接口->https://m.tuiimg.com/data.php?page=

以及易语言/彗星网络支持库/精益模块

先来分析一下这个网站

dc391580208630.png

再看一下接口

L4SLWL6LBD~%}~L@F0XJ[}S.png

这是一个json文本(先记下)

再来看看单文章页源码是什么

K2}ZANSN4V7WMAC(JW0`(54.png

我们找到了图片源地址,再回过头看看json文本

5J7`)7W6]J26ZO47UGMKRZU.png

我们不难发现,图片源地址的结构是:https://i.tuiimg.net/[catalog]/[id]/[1-图片总量].jpg

这里说的[catalog] [id] [1-图片总量] 是指我解析json文本后可以得到的文本

那么我们直接上代码吧

先画一个窗口控制台

]N)7SMNR32I46F[NA]641P7.png

最后写上代码

.版本 2
.支持库 CometHttp
.支持库 internet
.支持库 iext

.程序集 窗口程序集_启动窗口
.程序集变量 url, 文本型
.程序集变量 n, 整数型
.程序集变量 page, 整数型
.程序集变量 maxpage, 整数型

.子程序 __启动窗口_创建完毕

编辑框1.加入文本 (到文本 (取现行时间 ()) + “--启动成功”)
' 读取所有配置文件
page = 到整数 (读配置项 (取运行目录 () + “\sj.ym”, “page”, “page”, “0”))  ' 这行可不用
n = 1  ' 下面需要用到
maxpage = 到整数 (读配置项 (取运行目录 () + “\sj.ym”, “page”, “maxpage”, “0”))

.子程序 _按钮1_被单击
.局部变量 maxpages, 整数型
.局部变量 return, 文本型
.局部变量 mn, 文本型, , "0"
.局部变量 mnjc, 整数型
.局部变量 json, 彗星JSON
.局部变量 nurl, 文本型
.局部变量 sl, 文本型
.局部变量 sljc, 整数型
.局部变量 title, 文本型
.局部变量 yurl, 文本型

.计次循环首 (maxpage, maxpages)
    url = “https://m.tuiimg.com/data.php?page=” + 到文本 (maxpages)  ' 定位到当前页
    return = 文本_取出中间文本 (编码_utf8到gb2312 (到文本 (HTTP读文件 (url))), “[”, “]”, )  ' 拿你要的json文本
    mn = 分割文本 (return, “},”, )  ' 把数据一条一条的取出(注意,这是数组)
    .计次循环首 (取数组成员数 (mn), mnjc)  ' 取出来的数据逐条处理
        json.解析 (mn [mnjc], )  ' 处理这条数据,用到彗星json
        yurl = 编码_utf8到gb2312 (到文本 (HTTP读文件 (“https://m.tuiimg.com/meinv/” + json.取文本属性 (“id”) + “/”)))  ' 写的时候怕出问题,所以我分步骤了,如果没问题可以直接写成(看下面)
        ' [文本_取出中间文本 (编码_utf8到gb2312 (到文本 (HTTP读文件 (“https://m.tuiimg.com/meinv/” + json.取文本属性 (“id”) + “/”))), “展开全图(1/”, “)</i></span>”, , )]
        ' 调试输出 (yurl)
        sl = 文本_取出中间文本 (yurl, “展开全图(1/”, “)</i></span>”, , )  ' 拿走你要的数量有多少,因为json文本里面你不知道这个图片有几张,你只能从json文本里知道标题、目录、id
        ' 调试输出 (sl)
        nurl = “https://i.tuiimg.net/” + json.取文本属性 (“catalog”) + “/” + json.取文本属性 (“id”) + “/”  ' 定义一个变量方便下面操作,节省运算的东西,加快速度
        title = json.取文本属性 (“title”)  ' 拿个标题备用
        透明标签1.标题 = “正在采集->” + title + “,共” + sl + “张”
        编辑框1.加入文本 (“正在采集:” + title + #换行符 + “共有:” + sl + “张” + #换行符 + “有:” + json.取文本属性 (“love”) + “人喜欢”)
        创建目录 (取运行目录 () + “\” + title)  ' 创建目录,防止后面自己找不到要啥图片
        .计次循环首 (到整数 (sl), sljc)
            编辑框1.加入文本 (“已写出:” + 到文本 (sljc) + “张,成功” + #换行符)
            写到文件 (取运行目录 () + “\” + title + “\” + title + “-” + 到文本 (sljc) + “.jpg”, HTTP读文件 (nurl + 到文本 (sljc) + “.jpg”))
        .计次循环尾 ()
    .计次循环尾 ()
.计次循环尾 ()


.子程序 _按钮3_被单击

时钟1.时钟周期 = 1000
' 周期0就是停止,过短会造成读取异常
' ps:时钟周期=1000=1s


.子程序 _时钟1_周期事件

.判断开始 (到文本 (HTTP读文件 (“https://m.tuiimg.com/data.php?page=” + 到文本 (n))) ≠ “”)  ' 很好理解,我先访问这个页面,看看有没有内容(只是这里我偷懒写而已,遇到很多网站这样访问会给你跳转404,然后404不是有文字之类的吗,所以那样的话就行不通)
    n = n + 1  ' n是变量,我在这里意思就是如果有文字(不是空文本),那我就判定他是有内容的(废话),n=n+1(换下一个page)
    透明标签1.标题 = “当前状态:正在遍历数据页,正在检查->” + 到文本 (n) + “页”
.默认
    时钟1.时钟周期 = 0
    透明标签1.标题 = “当前状态:已完成遍历,共” + 到文本 (n - 1) + “页”
    maxpage = n - 1
    .判断开始 (信息框 (“共获取到” + 到文本 (maxpage) + “页,是否保存数据?”, #是否钮, , ) = #是钮)
        写配置项 (取运行目录 () + “\sj.ym”, “page”, “maxpage”, 到文本 (maxpage))  ' 写出获取的数据(一共有几页有文字)
    .默认

    .判断结束

.判断结束


.子程序 _按钮4_被单击
.局部变量 mn, 文本型, , "0"
.局部变量 mnjc, 整数型
.局部变量 return, 文本型

' 调试,看看json文本能不能被正常读取
url = “https://m.tuiimg.com/data.php?page=1”
return = 文本_取出中间文本 (编码_utf8到gb2312 (到文本 (HTTP读文件 (url))), “[”, “]”, )
mn = 分割文本 (return, “},”, )
.计次循环首 (取数组成员数 (mn), mnjc)
    编辑框1.加入文本 (mn [mnjc] + #换行符)
.计次循环尾 ()

视频教程:

下载渠道:

1.源码:http://pan.ecyhome.com/s/xani0z64

2.成品:http://pan.ecyhome.com/s/ky9busa0

原文地址:https://ecy.ee/jszt/129.html#comment

分享到:
打赏
未经允许不得转载:

作者: 七彩网络, 转载或复制请以 超链接形式 并注明出处 七彩资源网
原文地址: 《我想你们应该疫情那么严重都在家里闲着,那我教你们写个程序?》 发布于2020-2-9

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏