curl url,只能使body退缩,而不是整个HTML文件



我有url mydomain.com/get

在那个URL上我使用index.html

index.html看起来像这样:

<!DOCTYPE html>
    <body>
        12345
    </body>
</html>

我想使用bash返回 12345。我正在通过詹金斯(Jenkins)这样做,所以我无法安装特定的内容。我在想格雷普?

curl mydomain.com/get | grep ???

注意:您的HTML看起来不像有效的XML。我对此进行了更改:

<!DOCTYPE html>
<html>
    <body>
        12345
    </body>
</html>

使用XMLSTARLET(XML)您现在可以用

提取身体元素的值
$ curl mydomain.com/get | xml select -t -v /html/body
        12345

带有支持进程替代的外壳(例如bash),如果您有xmllint,则可以写出以下内容:

echo 'cat //*[local-name()="body"]/text()' | xmllint --shell <(curl mydomain.com/get) | grep -v '^/ >'

请注意,这将仅返回<body>标签中的文本值。如果您有一个更复杂的页面,则需要一个更高级的命令。

尝试 sed -n '/<body>/,/</body>/p'。这应该在开始标签和终端标签之间找到文本。

最新更新