卷曲一个网址,只获取正文,而不是整个html文件

时间:2017-02-24 14:34:47

标签: bash curl

我有网址mydomain.com/get

在该网址上,我发送了index.html

index.html看起来像这样:

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

我想使用bash返回12345。我是通过詹金斯这样做的,所以我无法安装特定的东西。我在想grep?

curl mydomain.com/get | grep ???

3 个答案:

答案 0 :(得分:1)

注意:您的HTML看起来不像有效的XML。我把它改成了这个:

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

使用XMLstarlet(xml),您现在可以使用

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

        12345

答案 1 :(得分:0)

使用支持进程替换的shell(例如bash),如果你有xmllint,你可以编写如下内容:

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

请注意,这只会返回<body>标记中的文字值。如果你有一个更复杂的页面,你需要一个更高级的命令。

答案 2 :(得分:-1)

尝试 int leftSum = leftList.stream().mapToInt(Integer::intValue).sum(); int rightSum = rightList.stream().mapToInt(Integer::intValue).sum(); if (leftSum == rightSum) {..} 。这应该在起始和结束身体标签之间找到文本。