新 用 户 注 册】 【热 线 社 区】 【帮 助 信 息
InfoWeb首页 >> 技术天地 >> 模板源码 >> 技术文章
技术天地
相 关 报 道
* WebHints 1.01 网页“每日一言”工具
 [2000-01-04 16:18]
* WEB-FRIEND网上交友脚本程序
 [2000-01-04 16:14]
* WebCal 1.11 日历脚本程序
 [2000-01-04 16:11]
* TextClock显示日期时间脚本
 [2000-01-04 16:05]
* MetaMake v1.0 meta标记生成脚本
 [2000-01-04 16:00]
更多相关
WebLog 2.20网站记录分析工具


[下载源程序] 立即下载
[编写者] Darryl C. Burgdorf (burgdorf@awsd.com)

     http://awsd.com/scripts/weblog/

[程序语言] PERL

[运行平台] UNIX(建议)或NT

[功能描述]        

  WebLog是一个网站记录分析工具。可以让你监控网站的活动情况,可以按月,周,天和小时统计点击次数,传送的字节数,和所点击的网页,并监控你的最受欢迎的网页。同时,该工具软件可以显示有关报告,包括用户对你的网站的访问情况,包括访问的文件次序,还可以给出用户在观看你的网页时停留时间的一个初步结果,可给出用户访问的链接网址的信息,给出访问者使用搜索引擎时所用的关键字,还可以给出用户访问时所用的平台。

统计结果报告,统计结果提供了下述信息:

A. 长期统计结果

1. 每月统计结果: 启动WebLog以来,网站的活动情况概览(每月总的点击次数,传送字节数,访问者大约的人数)

2. 每日统计结果(过去五周): 过去五周来,每周的网站活动情况概览。

3. 按一周的的工作日来统计的结果:启动WebLog以来,按每周中的工作日来统计网站活动情况。

4. 按小时统计的结果: 按一天中的小时来统计网站活动情况。

5. “记录簿”: 你的网站得点击率最高的日期,传送字节数最多的日期,以及访问人数最多的日期的列表。

每一项长期统计报告(除了“记录簿”)均列出了四项信息:点计数,字节数,访问者数,所观看的网页数。

点击数是服务器上被请求的文件数,比如,如果某个访问者访问了一个包含四个图像的网页,总共就会有5次被统计到access log记录中。字节数是服务器在满足这些请求时所传送的信息的字节数。访问数是访问你的网站的实际人数的一个粗略的统计。“pview”表示你的网页被访问的次数。每一项长期的统计报告也可以用一个简单的棒图显示出来。

B. 当月统计结果

1. 根据点击数显示出头N个文件(可选项): 最经常访问的页面文件清单。

2. 根据流量大小显示出头N个文件(可选项): 根据传送字节数大小确定的页面文件清单。

3. 完整的文件统计(可选项): 当前月份中被访问的页面情况:包括最近访问的日期,被请求的次数,传送的字节数。

4. 根据出现404出错信息的次数多少所列出的头N个文件(可选项):人们请求最多的,但在你的网站上并不存在的文件清单。

5.完整的404出错信息统计(可选项): 访问实际不存在的文件的完整清单。

6.用户ID 统计(可选项): 用户ID的完整清单(及其相应的二级域名)。注意该报告仅仅在如下情况下方可产生:即你的网站至少有一部分在服务器中是有密码保护的。

7.“顶级” 域名: 来自各种顶级域名的访问者的分类统计。(包括.com, .net, .edu, 等)

8. 根据点击数的头N个域名(可选项):最经常访问你的网站的人们的IP地址(域名) 的清单。

9.根据流量的头N个域名(可选项): 从你的网站请求传送流量最多的人们的IP地址(域名)的清单。

10.完整的域名统计(可选项): 从当月以来访问你的网站的人们的完整的IP地址信息。

  当月统计报告的每一项自动从每月的开始日期起重新计数。这可以使得你避免统计结果文件过于庞大,而能记录事件的情况。

  可选的访问细节报告可以跟踪用户的访问情况。它可以显示出访问者进入你的网站的访问情况,你可以设定天数。

它也可以报告每天有多少个访问者以及他们所停留的时间等总体信息。如果允许记录引用URL项被打开,它也可以报告你访问者来自何处。请注意精确地统计访问者的数字是不可能的。该报告的结果仅仅是一个最好的近似值,该近似值是根据服务器访问记录的数据得出的。

  可选的引用URL报告记录了当“referers”引导到的不同的页面时,由浏览器所报告的URL,应该了解的是该项信息并不完全可靠。许多浏览器在引导到页面时并不提供任何信息,有时也会出现失真的数据。该报告仅仅在服务器访问记录中包含了必需的信息后,方可得到。

可选的关键字报告是访问者在使用不同的因特网搜索引擎和目录时为了寻找到你的网站而输入的关键字的记录。每个主要的搜索引擎都单独列出。该报告仅仅在服务器访问记录中包含了必需的信息后,方可得到。

  可选的代理和平台报告列出访问者所使用的代理(浏览器)和平台(操作系统)的情况。该报告仅仅在服务器访问记录中包含了必需的信息后,方可得到。

referers的URL, 关键字和代理/平台报告不会自动清除复位,所以你应定期注意这些记录文件的大小,并定期删除,以免文件过当而影响处理。

注意点:

1)同其它网站记录分析软件一样,WebLog是基于几个不完备的假定而设计的。其中主要的一条假定是:对短的时间内来自某一IP地址的访问是来自一个用户。另一假定是:对于服务器的访问记录的分析可以告知你关于访问者的一切真实信息。

2)不同用户通过同一个IP地址访问你的网站,这种情况是可能的,所以一个用户进程可能实际上有多个用户在访问。

另外,不少系统采取了本地缓冲技术,很可能不少似乎仅被访问了一次的页面实际上被许多不同的用户观看了多次。

3)WebLog假定在载入一页后到载入下一页之间的时间为用户观看前面页所用的时间。这个假定有时是不符合实际的,也许用户此时过去吃午饭了或去洗澡了,也许在其它网站去浏览了。这些是无法了解的。

4)最后, WebLog还假定用户观看最后一页的时间为30秒,当然是无法验证该假定的合理性的。

[文件清单]

weblog.pl: 这是主程序文件。你不需要对它做任何事情。事实上,也不需要你去执行它。

config.pl: 这是配置文件。你所要修改或改变的就是该文件。

你需要执行该文件(这样设置的理由是你可以有效地保留几个不同的脚本,比如你打算对不同的网站进行分析,只需每一个网站设置一个config文件即可)。

bar1.gif, bar2.gif, bar3.gif, bar4.gif, bar5.gif and bar6.gif: 这六个小的图形文件用来在主访问报告中创建棒图。

[安装步骤]

  正如上面所述,WebLog配置文件将被执行。WebLog程序并不执行。(注意应在telnet命令提示符下,而不是浏览器中执行)

配置文件应设置为可执行的。脚本的第一行应设置为系统的 Perl解释器所处路径。其它变量定义如下:

$LogFile: 生成记录报告的文件路径(不是URL),该文件由服务器生成。如果没有把握,请向网管查询。也有可能你无权存取LOG数据,这样你就根本无法使用WebLog。该脚本既可以读取NCSA普通格式和组合格式,也可以读取微软的扩展格式

LOG文件,这将由WebLog自动判别,你无需指出。显然,如果你读取的是NCSA标准log文件, 或者其它不包含agent和referer信息,WebLog将不会生成agent和referer的报告。

$IPLog: 一个可选的数据库文件的路径,该文件保存解析的IP/域名对。如果你是从一个LOG文件中生成多种报告,记录该信息可以加快WebLog的运行。如果你定义了一个IP LOG文件,注意其大小。因为,在一个繁忙的站点上,LOG 文件可能会很大。

$FileDir: 所创建的各种报告的目录路径。

$ReportFile, $DetailsFile, $RefsFile, $KeywordsFile 和 $AgentsFile:

WebLog可以生成的五种报告的文件名,除了第一个,其余都是可选项,如果你对某类报告不赋文件名,就不会生成该报告。

$EOMFile: 一个可选的文件,WebLog可以在每月结束前把数据存入其中,包括该月的完整的文件访问记录。对于那些打算长期保存文件报告的人尤为方便。

$SystemName: 在你的报告顶部所出现的描述(如"WebScripts")。

$OrgName 和 $OrgDomain: 主机名和主机的域名(如ISP等)。如果定义了这些变量,来自该机构/域的访问将被单独统计。

$GraphURL: 包含棒图的目录的URL,注意后面不要加斜杠。

(例如 "http://awsd.com/graphs")

$GraphBase: 该变量定义了在主报告中你想基于何种数据显示棒图。可以设为"hits", "visits", "pviews" 或"bytes",如果未定义(或定义错误)棒图将基于传送字节数来统计。

$IncludeOnlyRefsTo 和 $ExcludeRefsTo: 定义在文件清单中需要包含的或需要忽略的文件或目录。比如,如果仅需包含"scripts" 子目录中的文件,$IncludeOnlyRefsTo = "^/scripts" 即可。

又如 $IncludeOnlyRefsTo = "(^/dir1|^/dir2)")

$IncludeOnlyDomain 和 $ExcludeDomain: 定义在记录文件中需要包含的或需要忽略的域。如果你打算在记录分析中忽略来自你本人的访问记录,如可以将$ExcludeDomain变量设置为你自己的IP地址。注意即使你未能完全忽略自己的访问,也可以通过使用$OrgName和$OrgDomain变量在细节报告中单独列出。

$IncludeQuery: 如果该变量设置为"0" ,在URL中包含的查询信息将被丢弃。如果盖变量设置为"1" ,信息将被保留。

$PrintFiles: 标记,表示表示是否生成访问文件清单。(一般情况你的选择是生成,如果在服务器上,为每个网址生成单独的访问报告时,同时也会生成整个服务器范围的文件访问报告,此时你会打算忽略此报告。) 0 = 不生成 1 =生成

$Print404: 标记,表示是否显示出现"Code 404" 的文件清单,0 = 不显示; 1 = 显示

$PrintUserIDs: 标记,表示是否生成用户ID清单。如果你的网站无密码保护,或者你使用的密码系统未集成到服务器软件中,那么就不会生成该清单,可以关闭该功能。这样你的访问记录中将不会包含任何用户ID。

$PrintDomains: 标记,表示是否显示访问者IP地址清单。

0 = 不显示; 1 = 显示. 该变量也可以设置为"2" 用于表明

仅跟踪二级域名 (比如, 某人分别从user1.foo.com和user2.foo.com进行了点击,将显示出来自foo.com有两个点击,这样就可以减少记录文件的大小,尤其是在网站繁忙时有用。

$PrintTopNFiles: 头N个文件的N的值。设为0,表示不显示清单。

$TopFileListFilter: 定义了头N个文件清单以外的文件。如缺省值

"(\.gif|\.jpg|\.jpeg|Code 404)"将定义了大部分的图像文件和常被请求但不存在的文件。

$PrintTopNDomains: 包含在头N个域名清单中的N的值。

(如果不显示域名清单,该值则毫无用处)

$LogOnlyNew: 该变量设为"1" ,将告诉WebLog忽略上次LOG文件分析日期之前的数据项。如果你担心重复统计数据,将其设为1,就可以避免重复。如果你不打算按时间顺序来分析数据,将其设为0,所有数据都将得到分析。

$NoSessions: 如果为"1",将通知 WebLog不在月表,日报表和周报表中包含访问者的计数。也将关闭细节报告的创建。

$NoResolve: 缺省情况下, WebLog将把IP数字在记录文件中转换为域名, 对于大文件来说,颇费时间。如果你对访问者是来自".com"或 ".net"还是".jp" 网站不感兴趣,就将该变量设为1。

$HourOffset: 如果你处于某一时区,而你的网站的主机处于另一时区。该变量用于调整时间。如,你的服务器位于东部时区,而你处于太平洋时区,就设该变量为"-3"。

$DetailsFilter: 定义那些从数据报告中剔除的文件。

它也用来决定在主报告中可作为"page view"的文件。如缺省值 "(\.gif|\.jpg|\.jpeg)" 将把大多数的图形文件剔除掉,使得较容易跟踪实际被观看的页面,在统计观看每页所花的时间时也更精确。

$DetailsDays: 在细节报告中指已经过去的天数。该数字不得大于35。

$refsexcludefrom 和 $refsexcludeto: 如果你打算检索某些被referring URLs 报告忽略的文件,就在此处定义它们。例如,你也许想从同一域名中剔除一些引用,这样你就可以更容易地观察到来自那些外部的地点。

$RefsStripWWW: 该变量设置为"1" 将告诉脚本把"www" 的前缀从URL中移走。 否则,同一URL将在referring URL清单中出现两次:

$RefsMinHits: 该变量定义了来自某一页的索引的最小值。如果你的网站较忙,并想知道多数人来自何处,将其设置高点。如果网站不繁忙,或者你对跟踪所有访问感兴趣,将其设低点。

$TopNRefDoms: 该变量告知WebLog有多少域名包含在"top referers" 清单中。 (这只是域名清单,不是指某一特定的页。是你的大多数访问者来自的地方)。

$AgentsIgnore: 如果你打算在代理/平台报告中忽略对特定文件的引用,将其列出。可以剔除对于图像文件的引用。

Eliminating references

$Verbose: 该变量设置为"1" 将通知脚本在运行时显示状态信息。如果设置为0,将关闭。当然,任何出错信息也将生成。

$bodyspec: 该变量定义了将赋给报告中BODY 标记的特性。

$headerfile 和 $footerfile: 这些变量定义了包含HTML代码和出现在页的顶部和底部的的文本文件的位置。

$TotalReset: 在某种情况下,该变量设置为1,这样将使得WebLog

把有关积累的数据复位,而你的每月报告将不收影响。也不会影响日常记录。但是,其它的信息,如累计的代理和引用数据,按小时的统计,按每周的工作日所做的统计报告中,域名清单和访问文件清单将被清除。如果你打算一切从头开始,将该变量重设为"1" 。


(作者: 2000年01月04日 16:23)

发表看法,查看讨论,发给朋友,打印本页
InfoWeb首页 >> 技术天地 >> 模板源码 >> 技术文章
|网站地图| |关于我们| |最新更新| |使用说明| |网站检索|
————版权所有1999(C) 未经许可,不得转摘 ————