# api2har **Repository Path**: guojongg/api2har ## Basic Information - **Project Name**: api2har - **Description**: 抓包批量将http请求转换为har文件 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2020-11-18 - **Last Updated**: 2023-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # api2har #### 介绍 抓包批量将http请求转换为har文件 #### 软件架构 该工具可以捕获http请求,将请求内容转换为[har](http://dev.httparchive.org/) 格式的文件。 执行时需要使用root权限执行。 #### 安装教程 python3.6及以上 ```shell script # 依赖库安装 pip install -r requirements.txt ``` windows下需额外安装winpcap程序,下载地址:[WinPcap_4_1_3.exe](plugin/WinPcap_4_1_3.exe),直接双击安装即可。 #### 使用说明 ##### 1.直接运行 1. 修改配置文件,在项目根目录中有一个config.yml文件,按需求修改此文件中的配置信息 2. 启动抓包服务, 默认会将抓到的符合规则的包存为har文件。在项目目录的har目录中可找到。 ```python python cli.py ``` ##### 2.使用自定义逻辑 `get_packet.Capture.run`方法接收`callback`参数,可传一个回调函数,当抓到符合要求数据时会调用这个方法,将抓包到的数据传回。方法支持一个参数:`data`,数据为组装好的请求数据,格式为dict类型的har格式。 举例: ```Python from utils.get_packet import Capture from common.logger import log def example(data): log.i(data) if __name__ == '__main__': Capture(config='config.yml').run(callback=example) ``` ##### 接口过滤规则 项目目录下的filter.yml文件中可以配置过滤规则,详见配置文件内的注释 ```yaml base_filter: host: 192.168.1.117 # 按照目标服务器地址过滤,可以是域名和IP port: 80 # 按照端口过滤 iface: wlp3s0 # 网卡过滤 app_filter: # 应用级别的过滤规则,可通过HttpRequest和HttpResponse对象中的属性来做过滤规则 eq: null # 当属性与后面的值相等时,条件满足 # eq: # request.Method: GET contain: # 当属性包含后面的值时,条件满足 request.Path: cpcs-server response.Content_Type: application/json not_contain: # 当属性不包含后面的值时,条件满足 request.Path: .js # neq: # 当属性与后面的值不相等时,条件满足 # request.Method: GET gt: # 当属性大于后面的值时,条件满足 response.Content_Length: 300 # lt: # 当属性小于后面的值时,条件满足 # response.Content_Length: 300 ```