从HTML表中提取数据并将其放在带有shell的文本文件中

时间:2018-03-31 14:05:23

标签: html shell html-table html-tableextract

我需要shell scirpt从站点获取VPN的公共密码(每天或多或少刷新密码)。密码是HTML表格,位于网页HTML代码的特定行中。一旦我检索到密码(一个由5个字符组成的单词),我就想把它放在一个简单的文本文件的末尾。我需要这样的脚本来自动更新基于OpenWrt的路由器的OpenVPN客户端中的密码。

This是我正在谈论的网页,这是第265行,其中密码是(密码有两个,并不是脚本选择的一个问题) :

<td>1<td>in1.vpnjantit.com<td>53,992,1194,25000<td><a href='http://www.vpnjantit.com/assets/in1.vpnjantit.com.zip'>in1.vpnjantit.com.zip</a><td>vpnjantit.com<td>x3bu7<td>2018-03-31 at 22:00<tr><tr><td>2<td>in2.vpnjantit.com<td>53,443,1194,25000<td><a href='http://www.vpnjantit.com/assets/in2.vpnjantit.com.zip'>in2.vpnjantit.com.zip</a><td>vpnjantit.com<td>x3bu7<td>2018-03-31 at 22:00<tr></table></div>

我想要输入密码的文件非常简单:

vpnjantit.com
passwd

第一行是用户名,它始终是相同的:&#34; vpnjantit.com&#34;。第二行是5个字符的密码。我需要脚本首先删除文件的第二行,然后将html文件中的密码放在第二行(用新密码替换旧密码)。

我环顾四周,尝试用 awk curl cat 和其他命令的顺序做一些事情,但我不是&# 39;能够得到理想的结果。真的不知道如何实现这一点。

提前感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

我已使用nokogiri,但还有其他工具。

echo vpnjantit.com > file.txt # first line
curl http://www.vpnjantit.com/free-openvpn-india.html | nokogiri -e 'puts $_.at_css("table > tr > td:nth-child(6)").text >> file.txt # second line

这将直接替换文件(删除它并创建一个新文件)。

请注意,即使是较小的格式更改,这也可能随时中断。