sh/bash/dash/ksh/zsh等Shell脚本
-
caike
- 帖子: 30
- 注册时间: 2005-12-09 16:22
#1
帖子
由 caike » 2008-08-27 12:19
要做一个解析html文档, 从里面抓取它分页的url,
经过egrep的杂乱的html片断如下:
代码: 全选
<div class="pages"><em> 150 </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">››</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> 150 </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">››</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]
-
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 写了:我有几个脚本,是找论坛的链接的,下图片的。
大大, 分享一下.
-
shellex
- 帖子: 2180
- 注册时间: 2007-02-18 19:33
- 系统: OSX
- 来自: lyric.im
-
联系:
#8
帖子
由 shellex » 2008-08-27 14:51
说实话, 我从来就没看懂过shell script
既然你诚心诚意地问了
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~