【问题标题】:How to extract a link from an html file using bash如何使用 bash 从 html 文件中提取链接
【发布时间】:2013-11-22 18:40:58
【问题描述】:

我正在尝试创建一个 shell 文件,它将从wallbase.cc 的顶部列表中获取所有图像。到目前为止,我拥有它,以便它卷曲 html 代码 (using mac so no wget),并抓取所有图像的链接。我遇到的唯一问题是,当我对链接进行 grep 时,它会返回 <a href=link> <target=blank>。我想要做的是提取链接,以便我可以将它卷曲成一个文件。我考虑过使用外部 Java 或 C 文件来提取链接,但我认为有一种纯 bash 方法可以做到这一点。

任何帮助都会很棒。

编辑:到目前为止我的命令

grep <a href="http://wallbase.cc/wallpaper/' wallbase.source

这将返回所有链接,包括 html 代码。 我只需要使用一些命令来管理它,以便剥离 html 并留下链接

【问题讨论】:

  • 欢迎来到 Stack Overflow!你能发布你迄今为止尝试过的命令吗?
  • 我尝试过使用 sed 和 awk 甚至正则表达式模式,但没有成功
  • 如果您发布您尝试过的实际具体命令,人们将能够更好地帮助您。
  • 感谢帮助,到目前为止我已经包含了我的命令

标签: php html bash curl hyperlink


【解决方案1】:

您可以使用本机 grep 完成所有这些操作

这个选项可能正是你要找的grep's man page

-E, --extended-regexp 将 PATTERN 解释为扩展的正则表达式(ERE,见下文)。 (-E 由 POSIX 指定。)

-o, --only-matching 仅打印匹配行的匹配(非空)部分,每个这样的部分在单独的输出行上。

curl <URL> | grep -o -E "href=[\"'](.*)[\"'] "

正则表达式非常通用,但您可以根据需要对其进行细化

【讨论】:

  • 非常感谢,这正是我想要的,无需使用任何第三方脚本。谢谢。
【解决方案2】:

你可以用一个命令来完成:

mech-dump --links http://domain.tld/path

这个命令自带perl模块WWW::Mechanize

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多