我正在抓取使用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>
但由于某些原因,我无法让它发挥作用。我要么获得完整的页面源,要么根本没有(取决于我使用的模式)。
感谢任何帮助。
答案 0 :(得分:2)
假设您所需的输出仅为TEXT
,这将与您提供的输入一起使用:
sed 's/^.*>\([^<]*\)<.*$/\1/'
如果您想要的仅输出是TEXT
,并且您只希望从其路径中包含单词unique
的网址输出,那么请使用此输出:< / p>
sed -n '/http:.*\/unique\//s/^.*>\([^<]*\)<.*$/\1/p'