|
本帖最后由 小逸老师 于 2025-2-23 22:00 编辑
接着上篇(【系列教程】LUA网页操作教程【3】-VisualTFT中提取网页源码)继续
备注:不管是后续操作什么网站,需要注意的是网站文字编码与大彩控件字体编码、网站提交的页面是否需要cookie、网站页面是否能兼容http模式等。
在上一篇我们成功获得了网页的源代码,因为源代码字节比较大,所以我们先进行第一次截取(去除多余的源代码)以节省后续的操作效率。
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>广州大彩专注组态串口屏,国内首创《虚拟串口屏》,大彩屏无需购买硬件!主营串口屏,串口显示屏,86面板,串口彩屏,触摸屏,HMI人机界面</title>
- <meta name="keywords" content="串口屏,工业串口屏,组态屏,大彩屏,串口显示屏,86面板,串口彩屏,触摸屏,HMI人机界面" />
- <meta name="description" content="广州大彩始终专注组态串口屏,工业串口屏,串口显示屏,86面板,串口彩屏,触摸屏,大彩屏是人机界面的技术创新,大彩不断优化串口屏硬件和上位机功能,咨询电话(020)82186683-601" />
- <link rel="stylesheet" href="/Public/css/bootstrap.min.css">
- <link rel="stylesheet" href="/Public/css/style1.css">
- <script src="/Public/js/jquery-1.10.2.min.js"></script>
- <script src="/Public/js/bootstrap.min.js"></script>
- <script src="/Public/js/jquery.kinMaxShow-1.1.min.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript" src="/Public/js/jquery.flexslider-min.js" ></script>
- <script src="/Public/js/public.js"></script>
- </head>
- <body>
- <div id="header">
- <div class="w1200 tr">
- <!-- <span><img src="/Public/images/language.png" alt="language"></span>
- <a href="https://www.gz-dc.com/">中文</a> | <a href="https://www.gz-dc.com/category/typeid/95">English</a> -->
- </div>
- </div>
- <div class="top">
复制代码 因为我们目前只需要提取出网页编码文字和网页标题(title)文字,所以我们分析html代码先进行第一步提取:
将获得
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>广州大彩专注组态串口屏,国内首创《虚拟串口屏》,大彩屏无需购买硬件!主营串口屏,串口显示屏,86面板,串口彩屏,触摸屏,HMI人机界面</title>
- <meta name="keywords" content="串口屏,工业串口屏,组态屏,大彩屏,串口显示屏,86面板,串口彩屏,触摸屏,HMI人机界面" />
- <meta name="description" content="广州大彩始终专注组态串口屏,工业串口屏,串口显示屏,86面板,串口彩屏,触摸屏,大彩屏是人机界面的技术创新,大彩不断优化串口屏硬件和上位机功能,咨询电话(020)82186683-601" />
- <link rel="stylesheet" href="/Public/css/bootstrap.min.css">
- <link rel="stylesheet" href="/Public/css/style1.css">
- <script src="/Public/js/jquery-1.10.2.min.js"></script>
- <script src="/Public/js/bootstrap.min.js"></script>
- <script src="/Public/js/jquery.kinMaxShow-1.1.min.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript" src="/Public/js/jquery.flexslider-min.js" ></script>
- <script src="/Public/js/public.js"></script>
复制代码 这样我们后续再操作这个html代码时就精简了不少了。下面是在Http回调函数中进行第一次截取
- function on_http_response(taskid,retdata)
- retdata = string_midmatch(retdata,"<head>","</head>")--使用e_module.lua中封装好的函数,或者您可以将此函数和相关依赖的代码拷贝到你的业务代码文件中
- print(retdata)
- end
复制代码 截取完毕后我们就开始提取网页编码文字和网站标题了
- function on_http_response(taskid,retdata)
- retdata = string_midmatch(retdata,"<head>","</head>")--第一次截取去除多余的代码
- local web_charset = string_midmatch(retdata,'charset="','">')--以标志取出中间文字提取出网站编码文字,这里因网页代码中所用了双引号,所以Lua脚本里用的单引号。
- local web_title = string_midmatch(retdata,"<title>","<")--以标志取出中间文字提取出网站标题
- set_text(0,1,web_charset)--显示网站编码文字到控件
- set_text(0,2,web_title)--显示网站标题文字到控件
- end
复制代码
这里就成功提取出了网页的文字,但是因为VisualTFT默认用的是gb2312编码,而网页用的是utf8编码所以出现了乱码,这里我们还需要在VisualTFT中将控件的字体进行修改,修改方式请参考论坛我点击我。
到此处get方式获取网页内容到此完毕,后续将进行讲解简单的post方式
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|