记录用户在页面停留时间并写入数据库

花了很长时间终于把这个功能做出来了,跟大家分享下。用的是jquery。

有两个页面action.aspx和action_to_sql.aspx

 

action.aspx代码是:(CS文件里面没有代码)


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="action.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页11111</title>
    <script src="script/jquery.js" type="text/javascript"></script>//引用jquery(好东西来的,没学会的人编程能力肯定是起步阶段,即使你学了很久编程,本人就是后悔太迟学了)
    <script language="javascript" type="text/javascript">
        var start;
        var end;
        var state;
        start = new Date();//start是用户进入页面时间

        $(document).ready(function() {//用户页面加载完毕,这个是jquery初始化的语句(不知道初始化这个词用的是否正确)
            $(window).unload(function() {//页面卸载,就是用户关闭页面、点击链接跳转到其他页面或者刷新页面都会执行
                end = new Date();//用户退出时间
                state = end.getTime() - start.getTime();//停留时间=退出时间-开始时间(得到的是一个整数,应该是毫秒为单位,1秒=1000)
                $.post("action_to_sql.aspx", { state_time: state, state_url: window.location.pathname ,state_title: $("title").html() });//把值传到action_to_sql.aspx页面写入数据库(一开始我不想这样做,希望在本页面直接处理写入数据库,后来发现我的是生成静态页面的,无法在原来页面完成数据处理,所以学习jquery,并采用这种方法解决,才发现jquery真的是个好东西。)
            });
        });
    </script>
</head>



<body>
    <form id="form1" runat="server">
    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="action_out.aspx" >退出网站</asp:HyperLink>
    </form>
</body>
</html>

action_to_sql.aspx.cs代码是:(action_to_sql.aspx文件里面没有代码)

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class action_to_sql : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["user"] != null)//要记录哪个用户在哪个页面停留时间必须用户先登录
            {
                Hashtable ht = new Hashtable();
                ht.Add("user_id", Session["user_id"]);//用户ID
                ht.Add("state_time", Request["state_time"]);//用户停留时间(时间应该是毫秒为单位吧,因为记录的时间1面=1000)
                ht.Add("state_url", Request["state_url"]);//用户在哪个页面停留
                ht.Add("state_title", Request["state_title"]);//停留页面的title
                ht.Add("ipaddress", Request.UserHostAddress);//用户IP
                com.bn388.video.BLL.log.insert(ht);//写入数据库,这里是一个类来的,当然你也可以用自己的类
            }
        }
    }
}


### 回答1: 使用Python编写程序来爬取页面数据并将其写入数据库是可行的。您可以使用Python的爬虫框架,如Scrapy和BeautifulSoup,以及用于连接数据库的库,如SQLAlchemy或PyMySQL,来实现这一目的。 ### 回答2: 使用Python刷取页面数据并写入数据库的程序可以通过以下步骤实现: 1. 导入所需的库:首先,我们需要导入Python中的一些库,例如requests用于发起网络请求,beautifulsoup用于解析HTML页面,以及pymysql库用于连接和操作数据库。 2. 发起网络请求:使用requests库可以轻松地发起GET或POST请求,获取要刷取数据的页面的HTML内容。 3. 解析HTML页面:使用beautifulsoup库可以解析HTML页面,提取出页面中需要的数据。可以通过标签、类名、ID等方式定位和提取需要的数据。 4. 建立数据库连接:使用pymysql库,连接到数据库,并创建一个游标对象进行后续的数据库操作。 5. 创建数据表:如果数据库中还没有合适的数据表,可以使用SQL语句在数据库中创建一个新的数据表。 6. 将数据写入数据库:使用SQL INSERT语句将从页面中提取的数据插入到数据库的数据表中。可以使用游标对象的execute方法执行SQL语句,将数据写入数据库。 7. 关闭数据库连接:完成数据插入后,关闭数据库连接,释放资源。 通过以上步骤,我们就可以使用Python刷取页面数据并将其写入数据库的程序。需要注意的是,具体的代码实现可能因为数据源的不同而有所差异,但是基本的程序框架和流程是类似的。 ### 回答3: 使用Python刷取页面数据并写入数据库的程序可以通过以下步骤实现: 1. 导入所需的库:首先,我们需要导入Python的requests库来发送HTTP请求,以获取网页数据。另外,还需要使用BeautifulSoup库来解析HTML页面,以提取所需的数据。最后,我们还需要导入数据库相关的库,如MySQLdb或者SQLAlchemy。 2. 发送HTTP请求并获取页面数据:使用requests库发送HTTP请求,并将返回的页面内容保存到一个变量中。 3. 解析HTML页面:使用BeautifulSoup库对返回的页面进行解析,提取所需的数据。可以使用该库提供的各种方法和选择器来定位和提取特定的HTML元素。 4. 连接数据库:根据所选择的数据库类型,使用相应的库来连接数据库。例如,如果是MySQL数据库,可以使用MySQLdb库连接并操作数据库。 5. 创建数据库表:根据需要的数据结构,在数据库中创建相应的表格。可以使用SQL语句来执行这一步骤。 6. 数据写入数据库:将从网页中提取到的数据按照需要的格式进行处理,并将其写入相应的数据库表中。可以使用SQL语句来执行插入操作。 7. 关闭数据库连接:在数据写入完成后,关闭与数据库的连接,释放资源。 总结:通过以上步骤,我们可以使用Python编写一个程序来刷取页面数据并将其写入数据库。这个程序可以根据具体的需求进行调整和优化,以适应不同的网页结构和数据库类型。同时,还可以使用其他相关库和技术来增强程序的功能和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值