【网络安全带你练爬虫-100练】第22练:数据包中参数提取与处理

目录

一、目标1:GET数据包的处理

1、GET数据包中参数的提取

[2、GET请求中 统计参数个数](#2、GET请求中 统计参数个数)

二、目标2:POST数据包的处理

1、post中参数个数的提取

[2、POST请求中 统计参数个数](#2、POST请求中 统计参数个数)


一、目标1:GET数据包的处理

1、GET数据包中参数的提取

python 复制代码
import re

def extract_get_parameters(request):
    # 查找GET请求中的参数部分
    match = re.search(r'GET\s+/.*\?(.*)\s+HTTP', request)
    if match:
        parameters = match.group(1)
        # 将参数部分按照 '&' 分割成键值对
        parameter_list = parameters.split('&')
        # 将键值对解析为字典形式
        parameters_dict = {}
        for parameter in parameter_list:
            key, value = parameter.split('=')
            parameters_dict[key] = value
        return parameters_dict

    return {}

# 示例请求
request = "GET /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n......{此处省略一万字}"

parameters = extract_get_parameters(request)
print(parameters)

2、GET请求中 统计参数个数

python 复制代码
import re

def count_get_parameters(request):
    # 查找GET请求中的参数部分
    match = re.search(r'GET\s+/.*\?(.*)\s+HTTP', request)
    if match:
        parameters = match.group(1)
        # 将参数部分按照 '&' 分割成键值对
        parameter_list = parameters.split('&')
        # 统计参数个数
        return len(parameter_list)

    return 0

# 示例请求
request = "GET /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n......{此处省略一万字}"

count = count_get_parameters(request)
print(count)


二、目标2:POST数据包的处理

1、post中参数个数的提取

python 复制代码
import re

def count_post_parameters(post_data):
    # 使用正则表达式提取JSON数据
    pattern = r"\{.*\}"
    match = re.search(pattern, post_data)
    if match:
        json_data = match.group()
        parsed_data = json.loads(json_data)
        parameter_count = len(parsed_data)
        return parameter_count
    else:
        return 0

# 示例用法
post_data = '''POST /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n......{此处省略一万字}'''

parameter_count = count_post_parameters(post_data)
print(parameter_count)  # 输出:4

2、POST请求中 统计参数个数

(与GET类似,就不再做叙述了)

相关推荐
黑马水牛2 分钟前
Carla仿真系列:17_利用Carla仿真环境跑通3DGS——从采集360张图到高斯泼溅建模
python·ros·colmap·3dgs·新视角合成·carla仿真·三维建图
泡海椒37 分钟前
告别 iText 繁杂配置:jquick-pdf 极简 PDF 生成实战(零基础上手)
java·开发语言·pdf
赵大仁2 小时前
极空间 NAS 没有命令行,我逆向了它的桌面客户端
python·ai编程·nas·mcp·极空间
空白2 小时前
Power BI +VBA 【数据分析】
python
科技苑8 小时前
Python简单网络爬虫教程
爬虫·python
Patrick在香港11 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
YsyaaabB11 小时前
Python 数值分析
python
阿洛学长11 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
君顾111 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
weixin1997010801612 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python