网站首页 > 技术文章 正文
Node-RED系列(六):Node-RED解析节点的使用
上一期我们讲到了Node-RED中序列节点的使用,利用序列节点我们可以对消息体进行拆分,合并,排序,本篇文章我再来给大家讲一下Node-RED中解析parser分类下的节点,该分类下有5个节点,
- csv 在CSV格式的字符串及其JavaScript对象表示形式之间进行相互转换。
- html 使用CSS选择器从msg.payload中保存的html文档中提取元素。
- json 在JSON字符串及其JavaScript对象表示形式之间相互转换。
- xml 在XML字符串及其JavaScript对象表示形式之间进行相互转换。
- yaml 在YAML格式的字符串及其JavaScript对象表示形式之间相互转换。
csv
html
要使用这个节点,我们可以搭配一个http的请求节点,使用http节点,去获取一个html的全部内容,然后使用html节点去进行解析
在解析的时候,首先要选择一个标签,比如你要获取一个html中的所有p标签,那么就可以这样配置,你可以将所有p标签内的文本内容存放到msg.payload中,当做一个数组来处理。
如图
请求的html是这个,http://mczaiyun.top/data/1.html
内容很简单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>scrollWidth和scrollHeight属性-蚂蚁部落</title>
<style type="text/css">
* {
margin: 0px;
padding: 0px;
}
#box {
width: 200px;
height: 150px;
border: 1px solid #ddd;
margin: 0px auto;
margin-top: 50px;
/* overflow: scroll; */
padding: 0px;
}
#box::before {
content: url("data:image/svg+xml,%3Csvg t='1610605001506' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='9843' xmlns:xlink='http://www.w3.org/1999/xlink' width='16' height='16'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M562.005333 512l-211.2-211.2 60.330667-60.330667L682.666667 512l-271.530667 271.530667-60.330667-60.330667z' p-id='9844' fill='%239DA1A7'%3E%3C/path%3E%3C/svg%3E");
}
</style>
</head>
<body>
<div id="box">
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
<p>段落4</p>
<p>段落5</p>
<p>段落6</p>
</div>
</body>
</html>
123456789101112131415161718192021222324252627282930313233343536373839404142
我们使用这个节点,可以去定时监控一个页面的内容,比如有一个人发布了一篇文章,我们可以给某人发一封邮件。
也可以使用一些对外的信息,如微博,发布一条微博,来控制led灯的关闭,开启。这样的实战案例,需要我们来通过解析微博内容,来获取我们需要的内容。当然这里需要定制消息体,比如#开启#LED 或者#关闭#LED。解析相应的内容,进行不同的操作。
以下是这条流的json数据,大家可以导入自己动手做一下。
[
{
"id": "70d9360.22b68cc",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": ""
},
{
"id": "c063491c.2a1318",
"type": "html",
"z": "70d9360.22b68cc",
"name": "get p",
"property": "payload",
"outproperty": "payload",
"tag": "p",
"ret": "text",
"as": "single",
"x": 650,
"y": 260,
"wires": [
[
"f6760bc5.997d58"
]
]
},
{
"id": "f6760bc5.997d58",
"type": "debug",
"z": "70d9360.22b68cc",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 900,
"y": 260,
"wires": []
},
{
"id": "56422139.aff37",
"type": "http request",
"z": "70d9360.22b68cc",
"name": "1.html",
"method": "GET",
"ret": "txt",
"paytoqs": "body",
"url": "http://mczaiyun.top/data/1.html",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 370,
"y": 260,
"wires": [
[
"c063491c.2a1318"
]
]
},
{
"id": "27d30977.7bc8e6",
"type": "inject",
"z": "70d9360.22b68cc",
"name": "",
"props": [
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"x": 170,
"y": 260,
"wires": [
[
"56422139.aff37"
]
]
}
]
json
json节点的使用与html差不多,
我们请求这个地址http://mczaiyun.top/data/wxdl.json来获取一个json数据,
这个json的内容是
如图
是文心雕龙的文章
使用debug节点来打印json节点处理后的信息如下
xml
yaml
yaml 我们可以请求 这个地址的一个yaml文件
http://mczaiyun.top/data/pmc.yml
猜你喜欢
- 2024-10-19 越南指数行情数据API接口(越南指数股票最新行情)
- 2024-10-19 Pinot 架构分析(pod架构)
- 2024-10-19 大模型开发者实战揭秘:SFT指令微调数据构建的全方位指南
- 2024-10-19 27K star!这款开源可视利器帮你一眼看穿JSON
- 2024-10-19 linux-shell命令处理json数据(linux检查json格式)
- 2024-10-19 MongoDB常用特性一览(mongodb4.2新特性)
- 2024-10-19 轻量级的原生JavaScript的Excel插件——JExcel
- 2024-10-19 5万字长文!搞定Spark方方面面(五)
- 2024-10-19 越南指数清单列表数据API接口(越南指数清单列表数据api接口在哪)
- 2024-10-19 【Python基础】当JSON遇上Python,表格化真的那么难吗?
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)