分页: 1 / 1

[问题]分析html文件中的分页信息

发表于 : 2008-08-27 12:19
caike
要做一个解析html文档, 从里面抓取它分页的url,

经过egrep的杂乱的html片断如下:

代码: 全选

 
	<div class="pages"><em>&nbsp;150&nbsp;</em><strong>1</strong><a href="forumdisplay.php?fid=51&page=2&sid=7JjykH">2</a><a href="forumdisplay.php?fid=51&page=3&sid=7JjykH">3</a><a href="forumdisplay.php?fid=51&page=4&sid=7JjykH">4</a><a href="forumdisplay.php?fid=51&page=2&sid=7JjykH" class="next">&rsaquo;&rsaquo;</a></div>			<span class="postbtn" id="newspecial" onmouseover="$('newspecial').id = 'newspecialtmp';this.id = 'newspecial';showMenu(this.id)"><a href="post.php?action=newthread&fid=51&extra=page%3D1&sid=7JjykH" title="发新话题"><img src="images/dst/newtopic.gif" alt="发新话题" /></a></span>
	<div class="pages"><em>&nbsp;150&nbsp;</em><strong>1</strong><a href="forumdisplay.php?fid=51&page=2&sid=7JjykH">2</a><a href="forumdisplay.php?fid=51&page=3&sid=7JjykH">3</a><a href="forumdisplay.php?fid=51&page=4&sid=7JjykH">4</a><a href="forumdisplay.php?fid=51&page=2&sid=7JjykH" class="next">&rsaquo;&rsaquo;</a></div>			<span class="postbtn" id="newspecialtmp" onmouseover="$('newspecial').id = 'newspecialtmp';this.id = 'newspecial';showMenu(this.id)"><a href="post.php?action=newthread&fid=51&extra=page%3D1&sid=7JjykH" title="发新话题"><img src="images/dst/newtopic.gif" alt="发新话题" /></a></span>
			<span class="headactions"><a href="forumdisplay.php?fid=51&page=1&showoldetails=yes&sid=7JjykH#online" class="nobdr"><img src="images/dst/collapsed_yes.gif" alt="" /></a></span>


我想到分页的url结果如下:

代码: 全选

forumdisplay.php?fid=51&page=2&sid=7JjykH
forumdisplay.php?fid=51&page=3&sid=7JjykH
有点不知道从哪下手, 因为这些html代码很乱, grep是按行来匹配吧, 怎样在这一行里, 抠出我想的字符串呢?
cut?

有点晕. 谢谢各位的帮忙[/code]

发表于 : 2008-08-27 12:27
yjcong
sed cut awk grep 基本上是这几个有着无数参数命令

代码: 全选

sed -e 's/forumdisplay/\nforumdisplay/g'|sed -e 's/"/\n"/g'|grep "forumdisplay.php"
这个方法比较笨。先在href="后加个回车,这样,因为所有你要的东西里没有引号, 然后在引号后再加个回车, 这样,相关的东西就会独自成行, 最后用grep即可。 但问题是结果里有
forumdisplay.php?fid=51&page=1&showoldetails=yes&sid=7JjykH#online

发表于 : 2008-08-27 12:57
xiooli
来个复杂单是可以用的:

代码: 全选

xiooli@XIOOLI:~$ cat ./html |awk -F"<a href=\"" '{for (i=2;i<NF;i++) print $i}'|sed 's/\".*$//'|sort|uniq
forumdisplay.php?fid=51&page=2&sid=7JjykH
forumdisplay.php?fid=51&page=3&sid=7JjykH
forumdisplay.php?fid=51&page=4&sid=7JjykH
xiooli@XIOOLI:~$ 

发表于 : 2008-08-27 14:16
eexpress
我有几个脚本,是找论坛的链接的,下图片的。

发表于 : 2008-08-27 14:22
eexpress
告诉你关键点,先用tr '"' '\n'切。切开,就容易分析了。

发表于 : 2008-08-27 14:24
BigSnake.NET
grep -o

发表于 : 2008-08-27 14:43
caike
eexpress 写了:我有几个脚本,是找论坛的链接的,下图片的。
大大, 分享一下.

发表于 : 2008-08-27 14:51
shellex
说实话, 我从来就没看懂过shell script