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

sh/bash/dash/ksh/zsh等Shell脚本
回复
caike
帖子: 30
注册时间: 2005-12-09 16:22

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

#1

帖子 caike » 2008-08-27 12:19

要做一个解析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]
java程序员 linux菜鸟 C++初学者
http://ke-cai.net
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#2

帖子 yjcong » 2008-08-27 12:27

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
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#3

帖子 xiooli » 2008-08-27 12:57

来个复杂单是可以用的:

代码: 全选

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:~$ 
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#4

帖子 eexpress » 2008-08-27 14:16

我有几个脚本,是找论坛的链接的,下图片的。
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#5

帖子 eexpress » 2008-08-27 14:22

告诉你关键点,先用tr '"' '\n'切。切开,就容易分析了。
● 鸣学
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#6

帖子 BigSnake.NET » 2008-08-27 14:24

grep -o
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
caike
帖子: 30
注册时间: 2005-12-09 16:22

#7

帖子 caike » 2008-08-27 14:43

eexpress 写了:我有几个脚本,是找论坛的链接的,下图片的。
大大, 分享一下.
java程序员 linux菜鸟 C++初学者
http://ke-cai.net
头像
shellex
帖子: 2180
注册时间: 2007-02-18 19:33
系统: OSX
来自: lyric.im
联系:

#8

帖子 shellex » 2008-08-27 14:51

说实话, 我从来就没看懂过shell script
既然你诚心诚意地问了
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
回复