提问: 怎样用vim提取网页源文件中符合要求的超链接。

Vim、Emacs配置和使用
回复
weiidoo
帖子: 3
注册时间: 2010-10-11 10:28
送出感谢: 0
接收感谢: 0

提问: 怎样用vim提取网页源文件中符合要求的超链接。

#1

帖子 weiidoo » 2010-12-07 14:53

比如把: http://bbs.ubuntu.org.cn/10位数字.htm
格式的都留下并以换行显示,其他内容都删掉。
因为业务经常会有这种需求,不知道万能的VI,能否满足我小小的要求 :em04
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 提问: 怎样用vim提取网页源文件中符合要求的超链接。

#2

帖子 eexpress » 2010-12-07 15:03

代码: 全选

● cat ~/bin/unused-script/fetch-link.pl 
#!/usr/bin/perl

use LWP::UserAgent;
my $url=shift;
#my $url='http://forum.ubuntu.org.cn/search.php?search_id=newposts';
#my $url='http://doc.linuxpk.com/2970.html';
my $ua=new LWP::UserAgent();
my $re= $ua->get($url);
die if (!$re->is_success);
my $html= $re->content;

#得到页面中所有链接
while($html=~m{<a href=(["'])(.*?)\1.*?>(<.*?/>)*(.*?)</a>}gsi){
#print "$2\t--->$4\n";
my $l=$2; my $t=$4;if($l=~/^http/ and $l!~/com\/$|cn\/$/ and $t!~/^</){print "$l\t--->$t\n";}
}
万能的是pl
● 鸣学
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53
送出感谢: 3 次
接收感谢: 0

Re: 提问: 怎样用vim提取网页源文件中符合要求的超链接。

#3

帖子 风间星魂 » 2010-12-07 15:30


正则表达式
无论是vim正则还是shell perl python都行。
weiidoo
帖子: 3
注册时间: 2010-10-11 10:28
送出感谢: 0
接收感谢: 0

Re: 提问: 怎样用vim提取网页源文件中符合要求的超链接。

#4

帖子 weiidoo » 2010-12-07 15:55

谢谢2楼! 我学习一下
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 提问: 怎样用vim提取网页源文件中符合要求的超链接。

#5

帖子 lilydjwg » 2010-12-07 16:37

二楼真麻烦。

代码: 全选

grep -oP 'http://bbs\.ubuntu\.org\.cn/\d{10}\.htm'
这种东西,你首先得会正则表达式,其次学下 sed grep awk sort uniq 等文本处理工具。Perl 更强大,但是很难学。Python/Ruby 之类的对付复杂的处理也很不错。
回复

回到 “Vim和Emacs”