广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1059|回复: 0

【系列教程】LUA网页操作教程【3】-VisualTFT中提取网页源码

[复制链接]

63

主题

232

帖子

3787

积分

版主

大彩爱好者Q群14769485

Rank: 7Rank: 7Rank: 7

积分
3787
QQ
发表于 2025-2-21 23:31:48 | 显示全部楼层 |阅读模式
本帖最后由 小逸老师 于 2025-2-23 21:14 编辑

接着【系列教程】LUA网页操作教程【2】,本问主要讲解如果在VisualTFT中提取网页文字。
在此您需要准备如下:
1、熟练的Lua语法
2、VisualTFT开发工具
3、在真屏幕中需要先配置屏幕的网络后才能进行网络访问,如果您还不会网络配置例子请点击我
4、为了提高学习与编程速度,我们就不重复建造车轮子了,先下载【易模块】e_module.lua模块文件,点我去下载

教程正式开始:

1、打开VisualTFT新建一个W物联型系列的工程文件,并放置两个文本控件用于显示网页编码与网页标题、放置1个按钮用于点击获取网页内容(为何要点击按钮获得:因为访问网页是一个耗时的操作,也需要在屏幕实际已经连接网络后才能正确获得,所以这里用的是一个按钮。你可以判断在网络连接正常并在合适的时机中将获取网络数据的请求写到对应的地方)。
控件类型 用途 控件ID
文本控件 显示网页编码 0
文本控件 显示网页标题1
按钮控件 用于点击获取网页内容2


2、将下载的e_module.lua模块文件拷贝至刚新建的工程项目文件中,与main.lua文件同级目录。

3、在VisualTFT中点击“工具”-“LUA脚本编程”后进入编程页面。

4、新建立的工程文件中LUA脚本全部都被注释,我们去除注释和多余的代码只保留需要的几个。
  1. local httptaskid=5 --定义一个变量用于存放后面Http请求的任务ID
复制代码
  1. local url="http://www.gz-dc.com"  --定义一个变量用于存放访问的网址,VisualTFT暂不支持https,所以改成http,部分网站可能会无效
复制代码


5、首先我们需要在 on_init() 初始化函数中加载易模块
  1. function on_init()--初始化函数
  2.        dofile("e_module.lua")
  3. end
复制代码

6、然后需要增加点击按钮的事件
  1. function on_control_notify(screen,control,value)--点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
  2.   if screen==0 and control == 3 then
  3.      if value == 0 then --因大彩分为控件按下、控件放开、控件长按多个事件,所以这里只判断=0
  4.         http_request(httptaskid,url,1,"","")--发起http请求,暂时不支持https协议,请改成http协议,部分网站可能会无效
  5.      end
  6.      return--不再向下继续执行,这个也可以不用
  7.   end
  8. end
复制代码
备注:其中http_request()方法参阅https://doc.gz-dc.com/LUA/000_lua%20api.html文档页面
7、下面添加http任务回调事件进行测试。
  1. function on_http_response(taskid,retdata)
  2.         print(retdata)
  3. end
复制代码
让我们运行一下虚拟屏幕,点击按钮后就获得了网页内容并打印到了DBG里


完整代码
  1. local httptaskid=5
  2. local url="http://www.gz-dc.com"
  3. function on_init()--初始化函数
  4.     dofile("e_module.lua")
  5. end
  6. function on_control_notify(screen,control,value)--点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
  7.     if screen==0 and control == 3 then
  8.         if value == 0 then --因大彩分为控件按下、控件放开、控件长按多个事件,所以这里只判断=0
  9.             http_request(httptaskid,url,1,"","")--发起http请求
  10.         end
  11.         return
  12.     end
  13. end
  14. function on_http_response(taskid,retdata)
  15.     print(retdata)
  16. end
复制代码
备注:如果运行起来会报错,请检查您的代码。

OK,到了这一步你就学会了如何简单的发起http的GET请求获得网页数据了,但是到了这一步你会发现DBG里中文的区域是乱码,这是因为VisualTFT是GB2312编码,当前网页用的是UTF-8编码导致,后续我们将讲解如何在VisualTFT使用UTF8编码以及截取需要的文字内容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大彩爱好者Q群14769485
点我下载→TFT【易模块】封装好的函数库
点我下载→TFT屏可中文lua编辑器【好用】
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2025-5-9 12:08 , Processed in 0.050490 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表