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

oyt4ldly  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(135)

我需要一个shell脚本从站点获取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

第一行是用户名,它将始终相同:“vpnjantit.com“。第二行是5个字符的密码。我需要脚本首先删除文件的第二行,然后将html文件中的密码放在第二行(用新密码替换旧密码)。
我环顾四周,尝试用 awkcurlcat 等命令序列做一些事情,但我无法得到想要的结果。真的不知道如何实现这一点。
提前感谢您的任何建议!

slhcrj9b

slhcrj9b1#

我使用了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

这将完全替换该文件(删除它并创建一个新文件)。
请注意,这可能会打破任何时候,甚至微小的格式变化。

相关问题