wget在shell中解析一个网页

时间:2015-07-19 16:33:45

标签: bash shell wget

我正在尝试使用wget从网页中提取URL。我试过这个

 wget -r -l2 --reject=gif -O out.html www.google.com | sed -n 's/.*href="\([^"]*\).*/\1/p'

显示完成

  Downloaded: 18,472 bytes in 1 files

但不显示网页链接。如果我试着单独做到这一点

  wget -r -l2 --reject=gif -O out.html www.google.com 
  sed -n 's/.*href="\([^"]*\).*/\1/p' < out.html

输出

  http://www.google.com/intl/en/options/            
  /intl/en/policies/terms/ 

它没有显示所有链接

ttp://www.google.com
http://maps.google.com
https://play.google.com
http://www.youtube.com
http://news.google.com
https://mail.google.com
https://drive.google.com
http://www.google.com
http://www.google.com
http://www.google.com
https://www.google.com
https://plus.google.com

而且我想从第二级获得更多链接,任何人都可以为此提供解决方案

提前致谢

2 个答案:

答案 0 :(得分:0)

如果您不想使用grep,可以尝试

sed -n "/href/ s/.*href=['\"]\([^'\"]*\)['\"].*/\1/gp"

答案 1 :(得分:0)

-O file选项捕获wget的输出并将其写入指定的文件,因此没有输出通过管道传递到sed。 您可以说-O -wget输出定向到标准输出。