如何使用bash从html文件中提取链接

时间:2013-11-22 18:40:58

标签: php html bash curl hyperlink

我正在尝试创建一个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并留下链接

2 个答案:

答案 0 :(得分:2)

您可以使用您的原生grep

完成所有这些操作

此选项可能正是您所寻找的grep's man page

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

-o, - 仅匹配   仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行上。

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

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

答案 1 :(得分:1)

您可以使用一个命令执行此操作:

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

此命令附带perl模块WWW::Mechanize