解析网站的linux脚本(url)
因此,有这个网站显示最受欢迎的网站。我正在尝试编写一个脚本,其中包含两个参数:第一个是html文件,第二个是文本文件。所有的网站网址应到第二个参数,所以在最后的文本文件应包含的东西,如:解析网站的linux脚本(url)
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的基础知识,但它只是基础知识是不够的。
在这里你去那么:
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
您能向我解释一下吗? – Haz
解释正则表达式?我没有写这个,当我写了2个小时后的正则表达式时,我忘记了它的作用!我知道它的发现 s(第一grep),然后我迷路了#truth我通常用'python'来做这件事需要我
@Haz。如果你正在为学校做作业,而你现在有工作代码,那么你应该自己动手解剖代码,以便理解它。取出管道的前两个部分并剪切/粘贴到命令行上。看看输出,直到你理解了(在从你的类中查询你的sed文档之后)发生了什么,然后添加另一部分管道,并观察输出中的变化与已添加的代码的匹配情况。重复,直到你可以通过你的班级的期末考试!祝你好运。 – shellter
要使用sed的是这样一个痛苦的屁股,你就是最好做到这一点使用python/perl/ruby ...其他任何东西。特别是因为你可能在同一行中有多个
我认为[这是一个适当的参考](http://*.com/a/1732454/1270789)你正在尝试做什么。我认为,用''nokogiri''或'perl''''''''''''''''''''''''更好,而不是使用'grep'和'sed'来合适的HTML DOM解析器。 –
哈哈哈@ KenY-N - 我能说什么,伟大的思想都一样;) –