【电子数据取证】如何快速在CSV中找到涉案手机号码

文章关键词:电子数据取证、聊天记录恢复、数据恢复、手机取证、介质取证

一、前言

在最近的取证工作中,我们遇到很多需要从大量的聊天记录数据中提取特定的信息,例如手机号码,银行号码,交易码。由于数据通常以数据库或表格的形式存在,手动复制粘贴并筛选是低效且耗时的。本文将介绍如何利用 Python 高效地从数据库或表格中提取手机号码。

二、案件背景

在这个案件中,目标人通过微信在几十个微信群中进行活动。其中一个微信群引起了关注,因为该群的成员命名方式是"姓名+手机号码",而这些成员每天都在该群中发布他人的手机号码。目前,目标人已经被抓获,调查员使用LX-A200手机取证系统成功固定了他的微信聊天记录,并将其导出为Excel表格。现在,警方希望通过分析这些聊天记录来确定是否存在突破口,并统计群员发送手机号码的情况。

为了高效提取数据,调查员对导出的Excel表格进行了分析。他们发现在聊天内容中直接提取手机号码是困难的,手动复制粘贴并筛选是低效且耗时的工作。因此,需要编写一个Python脚本来实现自动化的数据提取。该脚本将帮助他们快速从聊天记录中提取相关信息,以便进一步分析和调查。

三、Python安装&调试

在开始高效提取数据之前,我们需要确保已经安装了 Python 编程环境,并安装了所需的库和模块。我们推荐使用 Pycharm 作为开发环境,因为它具有智能化的代码提示和调试功能,可以提高开发效率。

我们将使用 Pandas 库来处理表格数据,使用正则表达式模块 re 来匹配手机号码和地址。在 Pycharm 中,我们可以使用 Pandas 库的交互式界面来轻松地导入和清理数据,使用正则表达式模块来匹配手机号码和地址,从而提高数据提取的效率和准确性。

要安装 Pandas 库re 模块,请运行以下命令:

pip install pandas

pip install re

安装完成后,可以使用以下代码来检查是否已经安装成功:

import pandas

import re

print("pandas版本号:" + pandas.__version__)

print("re模块版本号 :" + re.__version__)

如果成功安装,则会出现图1的界面,这里可以看出我的pandas版本是1.5.3,re模块版本号是2.2.1。

图1 安装成功样式

四、数据分析

在编写代码之前,我们需要对处理的表格进行预处理

4.1、预处理:

步骤1:我们需要复制一份表格(以防操作失误,还可以还原)。

步骤2:我们可以删除不需要的列,使数据更加精确且处理时间更快。

步骤3:需要找到所需处理的数据在哪一列,并记住该列的数字,以便后续编写代码时使用。

步骤4:我们需要分析该列中的数据。如果存在以"http://"、"url."等网址开头的数据,则这些数据是无效的,可以选择将这些行删除。对于其他有效数据,我们需要确认数据的格式,并检查是否存在包含两个手机号码的数据。完成这些预处理工作后,我们就可以开始编写代码了。

4.2、代码编写:

在处理大量数据时,我们需要让计算机知道要提取哪些数据?例如下图2中,我们需要把手机号码提取出来。

图2 手机号码样本

我们可以使用前面安装的re模块来匹配数据。re模块是一个正则表达式模块,可以用来匹配字符串中的数据。

在正则表达式中,^表示匹配字符串的开头,$表示匹配字符串的结尾。由于手机号码是以1开头,后面跟着10个数字,因此可以使用正则表达式r'^1\d{10}$'来匹配手机号码。但是,这样会匹配出一些无效的手机号码,因为手机号码的第二位是3-9。因此,我们可以改进正则表达式,使用r'^1[3-9]\d{9}$'来匹配以1开头,第二位是3-9之间的数字,后面跟着9个数字的字符串。这样,我们就可以准确地匹配中国大陆的手机号码了。

完成整个代码最核心的内容后,只需用pandas识别表格内容在加一点判断即可,代码如下图3所示:

图3 代码编写

这里需要提取的数据是在第三列,所以代码中“if len(df.columns) > 2”我写的是2(计算机从0开始计数,即0是1),如果需要提取的数据在第四列,只需2改成3。

4.3、数据结果

代码编写完成后,我们运行下看看结果,如下图4所示:

图4 结图对比

可以看出将有效的手机号码都匹配处理了,不论手机号码在什么位置,或者前面加了什么字符,都是能匹配出来。

五、正则表达式运用

在本次Python取证实战中,我们使用了re模块来编写正则表达式,用于从Excel和CSV表格中提取手机号码。但是这时候需要提取的数据是身份证号码,我们只需要将修改下正则表达式,下面给大家列举一些常用的正则表达式。

  1. 匹配手机号码:r'^1[3-9]\d{9}$'
  2. 匹配邮箱地址:r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$'
  3. 匹配身份证号码:r'^\d{17}[\dXx]$'
  4. 匹配URL地址:r'^https?://[\w-]+(.[\w-]+)+([\w.,@?^=%&:/+#-]*[\w@?^=%&/+#-])?$'
  5. 匹配地址:   IPr'^((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$'
  6. 匹配日期格式:r'^\d{4}-\d{2}-\d{2}$'
  7. 匹配时间格式:r'^\d{2}:\d{2}:\d{2}$'
  8. 匹配中文字符:r'[\u4e00-\u9fa5]'
  9. 匹配英文字符:r'[a-zA-Z]'

10.匹配数字:r'\d'

正则表达式是一个强大的工具,可以用于匹配字符串中的特定模式,从而提取出所需的信息。通过修改正则表达式,我们可以轻松地匹配出不同格式的数据,大大提高数据处理和文本处理的效率和准确性。

六、总结

使用Python高效提取Excel和CSV表格数据是数据分析和处理的重要步骤。通过使用Pandas库和re模块,可以方便地读取和处理表格数据,并进行数据清洗和预处理。在提取表格数据时,需要注意数据类型和格式的一致性、编码格式的一致性、数据缺失和异常值的处理、数据安全性等问题。同时,使用正则表达式提取表格数据时,需要注意正则表达式的语法、数据格式的一致性、正则表达式的效率和可读性等问题。通过注意这些问题,可以确保提取的表格数据准确、可靠、安全,并为后续的数据分析和处理提供便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ipython的使用与详解

Ai文章推荐 1 作为程序员,开发用过最好用的AI工具有哪些? 2 Github Copilot正版的激活成功,终于可以chat了 3 idea,pycharm等的ai assistant已成功激活 4 新手如何拿捏 Github Copilot AI助手,帮助你提高写代码效率 5 Jetbrains的…

Linux系统下多网卡多网关设置

场景一: 主机AB得网卡1和网卡2都分别划分在VLAN1和VLAN2中,主机C在VLAN3中,VLAN1,2,3在三层交换设备上配置好网关192.168.1.1 192.168.2.1 192.168.3.1,并开启三层交换功能。 主机A的两块网卡分别IP为192…

Linter 与code formatter之python 编程起手式

1. Linter 与code formatter Linting and code formatting are essential practices in software development, particularly in Python, to maintain code quality, readability, and consistency. Let’s delve into their functions and how to use them in PyCharm when w…

Sectigo OV通配符SSL证书多少钱?

在网络安全领域,SSL数字证书起着至关重要的作用,尤其是在保护网站和用户信息方面。而Sectigo OV通配符证书是一种常用的数字证书之一,它能够为同一域名下的多个子域名提供保护,还能够通过企业验证来增强安全性。那么,对…

边缘检测(一)-灰度图像边缘检测方法

灰度图像边缘检测是数字图像处理与机器视觉中经常遇到的一个问题,边缘检测是否连续、光滑是判断检测方法优劣的一个重要标准,下面通过一个实例提供灰度图像边缘检测方法,该方法对其他图像检测也具有一定的参考价值。 首先,读入一幅…

inpaint下载安装2024-inpaint软件安装包下载v5.0.6官网最新版附加详细安装步骤

Inpaint软件最新版是一款功能强大的图片去水印软件,这款软件拥有强大的智能算法,能够根据照片的背景为用户去除照片中的各种水印,并修补好去除水印后的图片。并且软件操作简单、界面清爽,即使是修图新手也能够轻松上手&#xff0c…

面向对象编程基本概念

面向过程概述 面向过程编程,就是一种以过程为中心的编程思想。 分析出解决问题所需要的步骤,然后用函数把步骤一步一步实现。使用的时候一个一个依次调用。 面向对象编程 面向对象编程是一种对是世界理解和抽象的编程方法,把相关的数据和…

Python3 笔记:upper()、isupper()、lower()、islower()、swapcase()

1、upper() 方法将字符串中的小写字母转为大写字母。 语法:str.upper() 2、isupper() 方法检测字符串中所有的字母是否都为大写。 语法:str.isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写…

2023年全国大学生数学建模竞赛C题蔬菜类商品的自动定价与补货决策(含word论文和源代码资源)

文章目录 一、题目二、word版实验报告和源代码(两种获取方式) 一、题目 2023高教社杯全国大学生数学建模竞赛题目 C题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而…

雨水情监测系统解决方案

一、系统介绍 水库雨水情自动测报系统辅助水利管理部门实现水库雨水情信息“全要素、全量程、全覆盖”自动测报。系统具备水库水位、雨量、现场图像/视频等水文信息采集、传输、处理及预警广播等功能,有效提升了雨水情信息的时效性和准确度,为保障水库安…

CSS 表单设计指南

CSS 表单设计指南 引言 在网页设计中,表单是用户与网站交互的重要方式。一个设计良好的表单不仅能够提高用户体验,还能有效提升数据收集的效率。CSS(层叠样式表)作为网页设计的关键技术之一,可以极大地改善表单的外观…

【网络协议栈】IGMP

IGMP IGMP(Internet Group Management Protocol)是互联网组管理协议的简称,属于TCP/IP协议族中负责IPv4组播成员管理的协议。以下是关于IGMP的详细介绍: 1 定义与作用 定义:IGMP是多播组成员的一种通信协议&#xf…

国内docker镜像加速

自己注册一个阿里云或者华为云的账户,搜索镜像 点击开通,再点击镜像加速器,可以看到自己的加速器地址,然后替换就可以了。再去pull即可成功,但是响应还是要慢一点

创建应用程序

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用wxPython之前,先来了解两个基础对象:应用程序对象和顶级窗口。 应用程序对象管理主事件循环,主事件循环是wx…

PostgreSQL源码分析——视图查询重写

这里我们分析一下查询重写的过程,主要分析视图的查询重写的过程。通过以下语句进行分析: create table t1(a int, b int); insert into t1 values(1,1); -- 创建视图 create view vt1 as select * from t1; -- 查询 select * from vt1;查询重写过程分析…

鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(下)

前言 在前两篇文章中,我们深入探讨了网络层的封装和优化技巧。本文将带您走进网络层的实战应用,从架构设计到具体实现,一步步指导您如何使用我们精心构建的网络框架。 一、网络层架构设计 在鸿蒙应用开发中,一个清晰、合理的网络层架构是保证项目可维护性和扩展性的关键…

发那科机器人IO 分配

IO 信号 也称为输入\输出信号,是机器人与外围设备通信的电信号

ROS 1的相机驱动代码迁移到ROS 2的方法

为了将ROS 1的相机驱动代码迁移到ROS 2,你需要对代码进行一系列的修改,包括但不限于更新消息类型、API调用和构建系统。 ### 步骤1:更新消息类型 - sensor_msgs/Image和cv_bridge在ROS 2中是可用的,但是确保你使用的是ROS 2版本的…

[CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限

报错解释: 错误代码 [CODE:-5504] 表示用户尝试执行一个涉及到系统表 SYS.SYSOBJECTS 的查询,但是没有获得相应的查询权限。SYS.SYSOBJECTS 是一个系统表,包含了数据库中所有对象的信息,例如表、视图、存储过程等。 解决方法&am…

效率软件大盘点

Hey小伙伴们💕!知道你们都在追求高效工作生活,今天就来给大家种草五款超实用的国产工作App,让你的效率直线上升,再也不怕被工作追着跑啦!🚀 1️⃣ 【亿可达】 - 软件连接器 🔗 作为…