sed命令从HTML中提取文本

时间:2010-12-16 18:32:07

标签: html text curl sed extract

我正在抓取使用curl的页面源,并希望从特定标记中提取文本。

文本位于唯一标记之间:

href="http://www.website.com/some/unique/page.php?q=xyz">TEXT</a>

我做的是:

curl -s "http://www.website.com" | sed 's|PATTERN|\1|'

PATTERN是我尝试过的众多正则表达式模式之一,其中之一是:

href="http://www.website.com/some/unique/page.php?q=xyz">\(.*\)</a>

但由于某些原因,我无法让它发挥作用。我要么获得完整的页面源,要么根本没有(取决于我使用的模式)。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

假设您所需的输出仅为TEXT,这将与您提供的输入一起使用:

sed 's/^.*>\([^<]*\)<.*$/\1/'

如果您想要的输出是TEXT,并且您只希望从其路径中包含单词unique的网址输出,那么请使用此输出:< / p>

sed -n '/http:.*\/unique\//s/^.*>\([^<]*\)<.*$/\1/p'