UNIX コマンドを使用して HTML タグから特定の URL を抽出する方法

UNIX コマンドを使用して HTML タグから特定の URL を抽出する方法

http://www.rediff.com/news以下の<a>タグからリンクを抽出したい

<a href="http://www.rediff.com/news" onclick="trackURL('http://track.rediff.com/click?url=___http://www.rediff.com/news___&cmp=news1_nav&lnk=news1_nav&nsrv1=ushome');return false;"><div class="n_tabnormal">News</div></a>

Unix コマンドを使用します。ハードコーディングはしないでください。

答え1

XML/HTML パーサーを使用することは、XML/HTML データを操作する正しい方法です。

xmlスターレット解決:

sed 's/&/&amp;/g' yourfile | xmlstarlet sel -t -v '//a[div/text() = "News"]/@href' -n

出力:

http://www.rediff.com/news

  • sed 's/&/&amp;/g'&- アンパサンドを特殊文字としてHTMLエンティティに変換する

  • //a[div/text() = "News"]/@href- xpath式、テキストを含む子ノードがある場合にタグhrefの属性値を抽出しますadivNews

関連情報