解析网站的linux脚本(url)

时间:2015-10-21 02:00:28

标签: linux bash command-line

所以有这个网站显示最受欢迎的网站。我正在尝试编写一个将带有两个参数的脚本:第一个是html文件,第二个是文本文件。所有网站的网址都应该转到第二个参数,所以最后文本文件应该包含以下内容:

http://www.website1.com/
http://www.website2.com/
...

如果我说

cat argument1.html
打印这样的东西:

<a href="http://babelfish.altavista.com/babelfish/trurl_pagecontent?lp=en_nl&url=http%3A%2F%2Fwww.100bestwebsites.org%2F"><img src="Holland.gif" height="33" width="50"><br>DUTCH</a></font></div></td>
     <td width="10%"> 
     <div align="center"><font face="Arial, Helvetica, sans-serif" size="2"><a href="http://babelfish.altavista.com/babelfish/trurl_pagecontent?lp=en_el&url=http%3A%2F%2Fwww.100bestwebsites.org%2F"><img src="Greece.gif" height="33" width="50"><br>GREEK</a></font></div></td>

所以你们可以看到有很多角色,但在中间的某个地方实际上有网站。我需要使用grep和sed。

感谢任何帮助。我知道grep和sed的基础知识,但它找到了基础是不够的。

1 个答案:

答案 0 :(得分:2)

然后你去:

cat argument1.html | grep -o '<a href=['"'"'"][^"'"'"']*['"'"'"]' | sed -e 's/^<a href=["'"'"']//' -e 's/["'"'"']$//'

cat argument1.html | grep -o '<a .*href=.*>' | sed -e 's/<a/\n<a/g' | sed -e 's/<a .*href=['"'"'"]//' -e 's/["'"'"'].*$//' -e '/^$/ d'

信用:Easiest way to extract the urls from an html page using sed or awk only