我的networking上有一个设备将数据发布到html页面。 我需要能够从页面收集数据并将其插入到我的数据库中,以便我可以对数据进行历史参考。
下面是设备呈现的html的一个例子。 我需要拉的数字在当前值为290,1868和187的字段中。它们在一个表中……行由5:1,5:5和5:13来标识(如果这有帮助的话在所有)。
我想运行这个作为linux cron作业,所以我想用一个linux脚本来:1.从网站上拉取信息(假设使用cUrl命令)2.parsing数据(假设使用某种types的正则expression式命令)3.将数据保存到variables4.连接到我的数据库并将数据插入到表中
我尝试了几个不同的东西:curl + grep(我不知道我完全理解sed或正则expression式。
任何援助将不胜感激。 谢谢。
******start of html source <html><head><title>Data Table Monitor</title></head> <body bgcolor="#ffffff"><center> <h2><font face="helvetica">Ethernet Processor</font></h2> <h2><i>Data Table Monitor</i></h2> <hr width=25% align=center> <meta HTTP-EQUIV="refresh" CONTENT="15"><body bgcolor="#ffffff"><center><table border=1><tr><th>Address</th><th>CU</th><th>CD</th><th>DN</th><th>OV</th><th>UN</th><th>UA</th><th>PRE</th><th>ACC</th><th>Address</th><th>CU</th><th>CD</th><th>DN</th><th>OV</th><th>UN</th><th>PRE</th><th>ACC</th></tr><tr><td>C5:0</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>10</td><td align=right>0</td><td>C5:1</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>290</td></tr><tr><td>C5:2</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>2</td><td>C5:3</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td></tr><tr><td>C5:4</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td><td>C5:5</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>1868</td></tr><tr><td>C5:6</td> <td align=center>1</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>0</td><td>C5:7</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td></tr><tr><td>C5:8</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td><td>C5:9</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td></tr><tr><td>C5:10</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>717</td><td>C5:11</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>70</td></tr><tr><td>C5:12</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>187</td><td>C5:13</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>4384</td></tr><tr><td>C5:14</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>0</td><td>C5:15</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>0</td></tr><tr><td>C5:16</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>0</td><td>C5:17</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>32000</td><td align=right>1868</td></tr><tr><td>C5:18</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td><td>C5:19</td> <td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=center>0</td><td align=right>0</td><td align=right>0</td></tr></table></center><hr width=25% align=center> ******end of html source
使用C5:1<|C5:5<|C5:13
来标识行,然后使用向前看[0-9]+(?=..)
来仅捕获那些数字
grep -Po '[0-9]+(?=[^0-9]+(C5:2<|C5:6<|C5:13))'
回报
290 1868 187