0

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

是我正在谈论的网页,这是第 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

第一行是用户名,它总是一样的:“vpnjantit.com”。第二行是 5 个字符的密码。我需要脚本首先删除文件的第二行,然后将 html 文件中的密码放在第二行(用新密码替换旧密码)。

我环顾四周,并尝试使用awkcurlcat和其他命令的顺序来做一些事情,但我无法得到想要的结果。真的不知道如何实现这一点。

非常感谢您的任何建议!

4

1 回答 1

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

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

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

于 2018-03-31T14:18:53.797 回答