LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1581|回复: 5

如何从一页面中提取所有下载链接?

[复制链接]
发表于 2006-10-31 20:50:44 | 显示全部楼层 |阅读模式
比如,我想下载某个页面上链接的所有的MP3,需要首先提取这个页面上所有的链接到MP3的URL,怎样实现比较好呢?我现在用的是:

sed 's/http:/\n&/g' mp3.html | sed 's/\.mp3/&\n/g' | sed -n 's/^http:\(.*\)\.mp3$/&/p'

就是在http:前面和.mp3后面加上换行,然后把以http:开头、.mp3结尾的行提取出来
初学sed,感觉这样太臃肿,有没有简洁一些的办法?
发表于 2006-10-31 22:23:45 | 显示全部楼层
一般够用了

可以去看看别人写好URL的正则表达式。
回复 支持 反对

使用道具 举报

发表于 2006-11-1 00:11:03 | 显示全部楼层
perl -ne 'while (/(http[\S]*\.mp3)/g) {print  "$1\n";}' mp3.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-1 20:27:59 | 显示全部楼层
在我这里没有任何输出,能解释一下语法吗?

Post by kevinliu
perl -ne 'while (/(http[\S]*\.mp3)/g) {print  "$1\n";}' mp3.html
回复 支持 反对

使用道具 举报

发表于 2006-11-1 23:02:55 | 显示全部楼层
对于每一行
while 存在 pattern http[\S]*\.mp3 : http开头,.mp3结束, [\S]*中间的字符不是空格
就 print $1 这个patten , 然后 print 换行 \n.
回复 支持 反对

使用道具 举报

发表于 2006-11-2 00:03:02 | 显示全部楼层
今天学了正则表达式,明天学习grep 和sed
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表