LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: smileghost

关于awk脚本检测web页链接数的问题

[复制链接]
发表于 2006-5-12 12:37:49 | 显示全部楼层
我没有QQ,其实还是在论坛讨论好,惠人惠己。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-12 12:43:02 | 显示全部楼层
还是不大明白如何才能剔出要不要的内容啊,能不能举例说明一下?
回复 支持 反对

使用道具 举报

发表于 2006-5-12 13:01:00 | 显示全部楼层
http://www.gellyfish.com/htexamples/counturls.pl

正是你要的,但需要perl的HTML:arser模块。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-12 13:21:26 | 显示全部楼层
非常感谢你的帮助,不过你给的是一个perl语言的吧
刚学习不大了解
刚找了一些资料基本上已经解决了
把方法放上来给遇到同样问题的朋友
awk可以同时设置多种分隔符,

例如:
awk -F '[ :|]' '{print $1}' filename

就是用空格,:,|,同时做分隔符,这样就解决了我的问题

不知道为什么直接用
awk -F" {print $1}' filename

提示说:Unmatched ".

还希望哪位能给解释一下
回复 支持 反对

使用道具 举报

发表于 2006-5-12 13:26:34 | 显示全部楼层
这样不对吧?

你现在是要计数,还是要提取?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-12 13:28:56 | 显示全部楼层
其实是想要计数,想要提取出来显示链接先,然后再计数,在后面显示出来每个链接出现的次数,计算出现次数的代码还不会呢。:)
回复 支持 反对

使用道具 举报

发表于 2006-5-12 23:46:50 | 显示全部楼层
Post by smileghost
非常感谢你的帮助,不过你给的是一个perl语言的吧
刚学习不大了解
刚找了一些资料基本上已经解决了
把方法放上来给遇到同样问题的朋友
awk可以同时设置多种分隔符,

例如:
awk -F '[ :|]' '{print $1}' filename

就是用空格,:,|,同时做分隔符,这样就解决了我的问题

不知道为什么直接用
awk -F" {print $1}' filename

提示说:Unmatched ".

还希望哪位能给解释一下

awk -F" {print $1}' filename 语法错误。"是特殊字符,需要转义为本意。
  1. awk -F " '{print $1}' filename
复制代码
就应该好使了。
回复 支持 反对

使用道具 举报

发表于 2006-5-13 08:32:55 | 显示全部楼层
ubuntu.org.cn论坛上有个自动下载baidu排行 mp3的脚本
可以参考一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-13 19:58:06 | 显示全部楼层
那个脚本对我来说难度有点大,呵呵,不过还是谢谢楼上的
回复 支持 反对

使用道具 举报

发表于 2006-5-13 20:15:02 | 显示全部楼层
再来探讨一下

你的要求就是要先提取html文件中所有anchor中的href attribute的值,然后计数。

也就是像<a href="http://www.linuxsir.cn/">中的http://www.linuxsir.cn/,那是不是也包括<a href="../seamonkey.jpg">中的../seamonkey.jpg?还有可能是<a href=index.html#sec1>甚至<a href=#sec1>这样的fragment identifier,是不是也算?

难度还在于:

html的tag是大小写皆有可能的。
`a'元素后面不一定直接跟href attribute,像<a name="blah" href="url">也是有可能的。
html文件的格式比较松散,不是基于行的。
甚至还有可能碰到极不规范的html文件,比如href的值没加引号。
回复 支持 反对

使用道具 举报

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

本版积分规则

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