d3p*_*3pd 5 html xml shell xpath parsing
我试图解析一个相当简单的网页,以获取shell脚本中的信息.我现在正在使用的网页是在这里生成的.例如,我想将互联网服务提供商的信息提取到shell变量中.为此目的,使用其中一个程序xmllint,XMLStarlet或xpath可能是有意义的.我对shell脚本非常熟悉,但我不熟悉XPath语法和用于实现XPath语法的实用程序,所以我很欣赏一些指向正确方向的指针.
这是shell脚本的开头:
HTMLISPInformation="$(curl --user-agent "Mozilla/5.0" http://aruljohn.com/details.php)"
# ISP="$(<XPath magic goes here.>)"
Run Code Online (Sandbox Code Playgroud)
为方便起见,这是一个在线动态测试XPath语法的实用程序:
快速又脏的解决方案......
xmllint --html -xpath "//table/tbody/tr[6]/td[2]" page.html
Run Code Online (Sandbox Code Playgroud)
您可以使用Chrome和开发者工具找到节点的xpath.检查节点时,右键单击它并选择复制XPath.
我不会用太多,这不太可靠.
您的页面上的所有信息都可以在其他地方找到:例如,在您自己的IP上运行whois ...
你可以用我的 Xidel。从 cli 中的 html 页面中提取值是其主要目的。尽管它不是标准工具,但它是一个独立的、无依赖的二进制文件,无需 root 即可安装/运行。
它可以直接从网页中读取值,无需其他程序。
使用 XPath:
xidel http://aruljohn.com/details.php -e '//td[text()="Internet Provider"]/following-sibling::td'
Run Code Online (Sandbox Code Playgroud)
或者使用模式匹配:
xidel http://aruljohn.com/details.php -e '<td>Internet Provider</td><td>{.}</td>' --hide-variable-names
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4848 次 |
| 最近记录: |