首页 > 解决方案 > 使用 curl 和 cut 在 unix 中的 HTML 标记中抓取信息

问题描述

我想找出从 unix 中的远程资源中获取 HTML/XML 标记之间内容的最简单方法。这就是我认为它会起作用的方式。

curl https://www.google.com | grep "<title>" | cut -d '<title>' -f2 | cut -d '</title>' -f1

所以首先我curl是资源,用我想要的标签(有时意味着整个 HTML,因为现在许多网站都被缩小了)。

然后我在开头之后剪掉了所有东西<title>,最后我在关闭''之后剪掉了所有东西。

但是,这会导致错误:curl: (23) Failed writing body (0 != 8192). 该错误似乎发生了,因为cut不支持除单个字符之外的任何分隔符。

我喜欢我的方法是一种非常简单的方法来获取我想要的数据,并且正在寻找另一种简单的方法来做到这一点。


此外,即使它确实有效,我的解决方案也只适用于 HTML 中的单个标签。对于出现多次的标签怎么办?

标签: bashunixawksedcut

解决方案


W3 的这套工具似乎适合您的用例。http://www.w3.org/Tools/HTML-XML-utils/README

对于足够小的东西,你可以摆脱这样的事情。(我会用 Python+lxml 做其他事情)

请记住:您不能使用正则表达式解析 [X]HTML。


推荐阅读