【问题标题】:Extract data from HTML table and put it in a text file with shell从 HTML 表中提取数据并将其放入带有 shell 的文本文件中
【发布时间】:2018-09-10 07:58:59
【问题描述】:

我需要一个 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 和其他命令的顺序来做一些事情,但我没有t能够得到想要的结果。真的不知道如何实现这一点。

非常感谢您的任何建议!

【问题讨论】:

    标签: html shell html-table html-tableextract


    【解决方案1】:

    我用过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
    

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多