首页 > 系统相关 >Linux shell 提取 html网页中table表格内容

Linux shell 提取 html网页中table表格内容

时间:2024-12-29 18:52:42浏览次数:1  
标签:shell OK BUILD ---- html nbsp Linux ----&

前言全局说明


一、说明

1.1 环境:

Windows 11 家庭版 23H2 22631.3737
Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Windows 7 旗舰版
Visual Studio 2013
Ubuntu 18.04.6 LTS (Linux qt-vm 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux)
python Python 2.7.17 (default, Mar 8 2023, 18:40:28) [GCC 7.5.0] on linux2
python3 Python 3.6.9 (default, Mar 10 2023, 16:46:00)  [GCC 8.4.0] on linux

二、方式1

2.1 内容

文件名:example.html

 <table border=1>
<tr>
<td><b>Component</b></td>
<td><b>Status</b></td>
<td><b>Time / Error</b></td>
</tr>
<tr><td>SAVE_DOCUMENT</td><td>OK</td><td>0.406 s</td></tr>
<tr><td>GET_DOCUMENT</td><td>OK</td><td>0.332 s</td></tr>
<tr><td>DVK_SEND</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>DVK_RECEIVE</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>GET_USER_INFO</td><td>OK</td><td>0.143 s</td></tr>
<tr><td>NOTIFICATIONS</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>ERROR_LOG</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>SUMMARY_STATUS</td><td>OK</td><td>0.888 s</td></tr>
</table>

注意:tr 和 td 标签要在一行

2.2 命令

awk -F "</*td>|</*tr>" '/<\/*t[rd]>.*[A-Z][A-Z]/ {print $3, $5, $7 }' example.htmls

2.3 效果

SAVE_DOCUMENT OK 0.406 s
GET_DOCUMENT OK 0.332 s
DVK_SEND OK 0.001 s
DVK_RECEIVE OK 0.001 s
GET_USER_INFO OK 0.143 s
NOTIFICATIONS OK 0.001 s
ERROR_LOG OK 0.001 s
SUMMARY_STATUS OK 0.888 s

2.4 说明

  • $3, $5, $7 的,(逗号)并不是必须,只是为了值之间用空格分割。
  • 把 ,(逗号)替换成 "---" (分隔符要有双引号),那么空格将被改成 --- (如:4.3所示)
  • -F 将输入字段分隔符设置为正则表达式(任何 tr 的或 td 的开始或结束标记
  • 然后只适用于匹配这些标签和至少两个大写字段的行
  • 然后打印所需的字段。

三、方式2

3.1 内容

文件名:example.html

<table border=1>
<tr>
<td><b>Component</b></td>
<td><b>Status</b></td>
<td><b>Time / Error</b></td>
</tr>
<tr>
    <td>SAVE_DOCUMENT</td><td>OK</td><td>0.406 s</td>
</tr>
<tr>
    <td>GET_DOCUMENT</td><td>OK</td><td>0.332 s</td>
</tr>
<tr>
    <td>DVK_SEND</td><td>OK</td><td>0.001 s</td>
</tr>
<tr>
    <td>DVK_RECEIVE</td><td>OK</td><td>0.001 s</td>
</tr>
<tr>
    <td>GET_USER_INFO</td><td>OK</td><td>0.143 s</td>
</tr>
<tr>
    <td>NOTIFICATIONS</td><td>OK</td><td>0.001 s</td>
</tr>
<tr>
    <td>ERROR_LOG</td><td>OK</td><td>0.001 s</td>
</tr>
<tr>
    <td>SUMMARY_STATUS</td><td>OK</td><td>0.888 s</td>
</tr>
</table>

3.2 命令

awk -F "</*td>|</*tr>" '/<\/*t[rd]>.*[A-Z][A-Z]/ {print $2, $4, $6 }' example.html

3.3 效果

同 2.3 效果

四、方式3

4.1 内容

文件名:example.html

<table border="0">
<tbody>
<tr style="background-color: #f2f2f2;">
<td>排序</td><td>变量</td><td>英文说明</td><td>中文说明</td><td>备注、示例</td>
</tr>
<tr>
<td bgcolor="#f2f2f2">&nbsp;</td><td>BUILD_HOST_JAVA_LIBRARY</td><td>&nbsp;</td><td>主机上的JAVA库</td><td>&nbsp;</td>
</tr>
<tr>
<td bgcolor="#f2f2f2">&nbsp;</td><td>BUILD_HOST_STATIC_LIBRARY</td><td>&nbsp;</td><td>主机上的静态库</td><td>&nbsp;</td>
</tr>
<tr>
<td bgcolor="#f2f2f2">&nbsp;</td><td>BUILD_SYSTEM</td><td>&nbsp;</td><td>代表:build/core/</td><td>build/core/main.mk</td>
</tr>
<tbody>
</table>

4.2 命令

awk -F "<td *>|</*td>|</*tr>" '/<\/*t[rd]>.*[A-Z][A-Z]/ {print $3"----"$5"----"$7"----"$9 }' example.html

4.3 效果

BUILD_HOST_JAVA_LIBRARY----&nbsp;----主机上的JAVA库----&nbsp;
BUILD_HOST_STATIC_LIBRARY----&nbsp;----主机上的静态库----&nbsp;
BUILD_SYSTEM----&nbsp;----代表:build/core/----build/core/main.mk

五、方式4

5.1 内容

文件名:example.html

<tr><td>D</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;1</td><td>BUILD_EXECUTABLE</td><td>&nbsp;2</td><td>目标设备上的可执行文件</td><td>&nbsp;3</td></tr>
<tr><td>&nbsp;</td><td>BUILD_ENV_SEQUENCE_NUMBER</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>B</td><td>B</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>

5.2 命令

awk -F "</*td>|</*tr>" ' {print $3"----"$5"----"$7"----"$9"----"$11 }' example.html

5.3 效果

D----&nbsp;----&nbsp;----&nbsp;----&nbsp;
&nbsp;1----BUILD_EXECUTABLE----&nbsp;2----目标设备上的可执行文件----&nbsp;3
&nbsp;----BUILD_ENV_SEQUENCE_NUMBER----&nbsp;----&nbsp;----&nbsp;
B----B----&nbsp;----&nbsp;----&nbsp;


免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://segmentfault.com/q/1010000043110063/a-1020000043110067



标签:shell,OK,BUILD,----,html,nbsp,Linux,----&
From: https://www.cnblogs.com/wutou/p/18639265

相关文章

  • Linux1-入门及VM,centos安装
    1,重点linux系统简介及特点下载安装开关机2,具体内容2.1linux系统简介:Linux内核最初只是由芬兰人林纳斯·托瓦兹(LinusTorvalds)在赫尔辛基大学上学时(22岁)出于个人爱好而编写的。softwarelikesex;It`sbetterwhenit`sfree;......
  • HTML入门教程全网最全!(2)
    HTML文档<!DOCTYPE>声明Web世界中存在许多不同的文档。只有了解文档的类型,浏览器才能正确地显示文档。HTML也有多个不同的版本,只有完全明白页面中使用的确切HTML版本,浏览器才能完全正确地显示出HTML页面。这就是<!DOCTYPE>的用处。<!DOCTYPE>不是HTML标签。......
  • 一文读懂 Linux 磁盘使用情况查看
    一文读懂Linux磁盘使用情况查看在Linux系统管理与运维工作中,时刻掌握磁盘的使用状况对保障系统稳定运行、提前规划存储扩容至关重要。Linux提供了丰富且功能各异的工具,用于查看磁盘使用详情,本文将深入介绍这些实用工具,并结合实际操作示例,助力大家轻松驾驭磁盘管理工作......
  • 熟悉常用的Linux操作和Hadoop操作
    熟悉常用的Linux操作和Hadoop操作1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3。3.实验步......
  • Linux中vim常用命令和技巧(超详细保姆级教程)(六)
    最近被要求改用vim写代码,感觉自己的一些操作非常笨拙,完全浪费了vim的强大功能,下定决心从头学习vim的各种操作和技巧,顺便把学到的内容整理出来,内容持续更新中,包括各种基础操作和一些提高生产力的小技巧,适合和我一样刚接触vim或者想要系统练习vim操作的友友们,一起成为vim高手!(一)V......
  • linux网络 | 深度学习http的相关概念
        前言:本节内容讲述http。本节主要讲述http的一些相关概念,见一见的http的样子。在文章中,博主将先会重新回忆一下OSI的七层模型。然后讲两个前置知识。最后就是带着友友见一见http的格式。做完这些,本节内容就算是圆满结束。而后面的章节还会带着友友们模拟ht......
  • 2024-12-25《linux上安装redis报错》
     在linux上安装redis时,首先要安装c/c++编译器,然后安装redis,不然redis跑不了,安装时报错:cdsrc&&makeallmake[1]:Enteringdirectory'/opt/redis-7.0.0/src'CCMakefile.depCCserver.oInfileincludedfromserver.c:30:server.h:57:10:fatalerror:systemd......
  • 2024-12-3《利用ffmpeg推流到rtsp,再利用jmpeg在html界面上显示的解决办法》
    利用ffmpeg推流到rtsp,再利用jmpeg在html界面上显示的解决办法  目录需求在python代码里推流到rtsphtml里播放rtsp视频流 需求最近在百度飞桨上训练了一个摔倒识别的模型,用的PaddleDetection这个模型,训练好以后我部署到了Windows,但是我看大多数人都是部署到了......
  • Linux宝塔界面登录不上,提示密码错误
    您好,关于您反馈的Linux宝塔面板无法登录且提示密码错误的问题,这里为您详细介绍可能的原因及解决方案。一、重置宝塔面板密码如果您忘记了宝塔面板的初始密码,可以通过以下方法重置密码:参考官方教程:访问(网址)查看详细的重置步骤。通常包括通过SSH登录服务器,执行特定命令来修改......
  • 365编程自学笔记--006_HTML综合汇总
    006_HTML综合汇总今天是编程学习的第6天,汇总复习了下整个的HTML部分。以下是今天的整理笔记编程环境配置1-VSCode插件-Prettier-Codeformatter:代码美化-Wisen-Translate:悬浮翻译2-VSCode配置-AutoSave|afterDelay(自动保存)-FormatOnSave:✅(保......