bash - 使用 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 中的单个标签。对于出现多次的标签怎么办?
解决方案
W3 的这套工具似乎适合您的用例。http://www.w3.org/Tools/HTML-XML-utils/README
对于足够小的东西,你可以摆脱这样的事情。(我会用 Python+lxml 做其他事情)
推荐阅读
- angular - 如何将 Angular 8 模块发布到 NPM
- swift - 使用泛型创建结构数组
- amazon-web-services - EC2 实例 Web 访问 ERR_CONNECTION_REFUSED 错误。HTTP 端口已打开
- node.js - 如何通过AJAX和express处理大文件
- php - 如何在产品图片下编辑此文本(Wordpress)
- mysql - 请求中的字段结果值?
- php - 从php中的多维数组中找到最大的键值并返回其他键及其对应的值
- java - 如何在一台机器上拥有多个本地主机?
- docker - 使用 Docker 容器的静态 IP 在另一个网络上运行 Web 应用程序
- java - Java Class to JSON custom Schema by Annotation