【发布时间】:2019-01-25 13:28:31
【问题描述】:
我想找出 最简单 的方法来从 unix 中的远程资源中获取 HTML/XML 标记之间的内容。这是我认为它会起作用的方式。
curl https://www.google.com | grep "<title>" | cut -d '<title>' -f2 | cut -d '</title>' -f1
所以首先我 curl 资源,用我想要的标签 grep 出行(有时意味着整个 HTML,因为现在许多网站都被缩小了)。
然后我在开头 <title> 之后剪掉了所有东西,最后我在关闭 '' 之后剪掉了所有东西。
但这会导致错误:curl: (23) Failed writing body (0 != 8192)。
该错误似乎是因为cut 不支持除单个字符之外的任何分隔符。
我喜欢我的方法是一种非常简单的方法来获取我想要的数据,并且正在寻找另一种简单的方法来做到这一点。
此外,即使它确实有效,我的解决方案也只适用于 HTML 中的单个标记。出现多次的标签呢?
【问题讨论】:
-
这对
sed -n来说是可行的,但就像其他人所说的那样,将html 解析为纯文本可能不是一个好主意。仅供参考,sed方法如下所示:curl https://xkcd.com/ | grep "<title>" | sed -n "/<title>/,/<\/title>/p"。