编程问题,这个功能怎么实现?

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:26:41
编一个程序,功能要求:
分别记录用户浏览每个网页的时长和网页的关键字以及托拉滚动条的次数,每浏览一个网页就要记录一次,然后最好能存到一个库当中。库可以是一般的文档。
谁能给以个思路,或者一些关键代码。
语言C++或者JAVA都可以,谢谢!
我们这里的“本地”是指,用户的计算机,比如,我们需要做个程序,安装在某计算机上,能记录下某人的拉滚动条数,关键词以及浏览时长,没打算普遍安装,主要是为了收集一个用户的资料,然后根据这些参数得到用户对某一类网页的兴趣度,进而得出一个用户浏览网页的偏好,最后做个性化推荐。所以我只想在某个用户计算机上实验,不针对全世界用户。做这个程序的目的只是想验证我和我搭档设计的个性化推荐算法是能够反映用户对网页实际兴趣的(用户在看了推荐网页后满意即可),这就是我们的毕业设计。

这个功能不实用:

每拉一次滚动条就记录一次,这样看网页的人会感觉到拉滚动条不顺畅,许多人同时浏览网页都在拉的时候,你的服务器可能会累死,保存了无数的数据,你也无法分析,会成为垃圾数据。

浏览器窗口大小不同的时候,滚动条位置不能确定页面位置,这样的数据没有实际意义。

每个网页停留的时长更没有意义,打开网页以后可能打一会游戏、聊半天QQ才来关闭。

做这个功能是可行的:

用ASP、PHP、JSP等脚本,配合JAVASCRIPT的事件触发来做就非常简单。C++写CGI也可以,既然你指定了C++,那下面以C++为例子。

首先,需要用C++编写一个CGI,比如名字叫做log_view.exe,这个CGI获取三个参数:关键字KEYWORDS、时长TIMES、滚动次数CLICKS,可以使用GET或者POST方法。CGI完成的功能很简单,把以上三个数直接INSERT到数据库,返回内容为一个关闭窗口的JAVASCRIPT代码。

CGI获取GET参数的方法:从环境变量QUERY_STRING里面提取内容,里面便是调用这个CGI的URL的?后面的部分内容,按&和=分开就可以得到参数的数值。

CGI返回关闭窗口的代码可以是下面的一个语句即可:
printf("%s\n\n%s",
"Content-type: text/html",
"<script language=javascript>window.close();</script>");

其次,需要记录的页面都需要修改修改内容,增加一段JAVASCRIPT代码:
<script language=javascript>
var cgi='/cgi-bin/logview.exe';//CGI的地址
var keywords='这里写本页面的关键字';
var clicks=0;//这是记录滚动次数的全局变量
var