1.python抓包(sniff)-----实现wireshark抓包功能
2.爬虫工具--fiddler
python抓包(sniff)-----实现wireshark抓包功能
学习技术应谨慎,抓包抓包确保合法合规使用。网页网页
安装scapy模块
通过命令行执行:python -m pip install scapy
scapy的源码sniff()函数用于数据嗅探。
关键参数包括:
iface:指定目标网络接口。软件
count:设定捕获数据包的抓包抓包数量上限,非0表示限制数量。网页网页droidwall+源码
filter:配置流量过滤规则,源码使用BPF语法。软件
prn:定义回调函数,抓包抓包当数据包符合过滤规则时调用。网页网页
BPF过滤规则示例:
仅捕获特定IP交互流量:host ..1.
仅捕获特定MAC地址交互流量:ether src host ::df:::d8
仅捕获特定IP源流量:src host ..1.
仅捕获特定IP目的源码流量:dst host ..1.
仅捕获特定端口流量:port
排除特定端口流量:!port
仅捕获ICMP流量:ICMP
特定IP源且特定端口目的流量:src host ..1. && dst port
简单应用示例:
仅捕获源地址为..1.且目的端口为的流量。
注意:务必使用管理员权限运行命令行以获取网络访问权限。软件大涡模拟源码
为避免回调函数冗长,抓包抓包可定义callback()函数供prn调用。网页网页
捕获的源码数据包可以保存为pcap格式,使用wireshark工具分析。
完整工具源码运行效果:
注意:确保使用管理员权限运行命令行,否则可能无法访问网络接口。
爬虫工具--fiddler
一、抓包工具
1.1 浏览器自带抓包功能,通过右键审查元素,点击network,点击请求,自动扣款支付源码右边栏展示请求详细信息:request、headers、response。以搜狗浏览器为例,任意点击加载选项,查看get参数。
1.2 Fiddler,一个HTTP协议调试代理工具。它能记录并检查电脑和互联网之间的所有HTTP通信,收集所有传输的数据,如cookie、如何解析源码html、js、css文件,作为中介连接电脑与网络。
二、Fiddler的使用
2.1 下载并安装Fiddler,访问官网下载页面,填写信息后下载安装包,按照常规步骤进行安装。
2.2 配置Fiddler,打开工具选项,下载引导源码选择HTTPS捕获、解密HTTPS流量等功能,完成配置后重启Fiddler。
三、Fiddler的使用
3.1 在Fiddler中查看JSON、CSS、JS格式的数据。停止抓取:文件菜单中选择捕获,取消勾选。点击请求,右边选择inspectors。
3.2 HTTP请求信息:Raw显示请求头部详细信息,Webforms显示参数,如query_string、formdata。
3.3 HTTP响应信息:首先点击**条解码,Raw显示响应所有信息,Headers显示响应头,Json显示接口返回内容。
3.4 左下黑色框输入指令,用于过滤特定请求,如清除所有请求、选择特定格式请求等。
四、Urllib库初识
4.1 Urllib库用于模拟浏览器发送请求,是Python内置库。
4.2 字符串与字节之间的转化:字符串转字节使用Encode(),字节转字符串使用Decode(),默认编码为utf-8。
4.3 urllib.request属性:urlopen(url)返回响应对象位置,urlretrieve(url, filename)下载文件。
4.4 urllib.parse构建url:quote编码中文为%xxxx形式,unquote解码%xxxx为中文,urlencode将字典拼接为query_string并编码。
五、响应处理
5.1 read()读取响应内容,返回字节类型源码,geturl()获取请求的url,getheaders()获取头部信息列表,getcode()获取状态码,readlines()按行读取返回列表。
六、GET方式请求
6.1 无错误代码,但打开Fiddler时可能会报错,因为Fiddler表明Python访问被拒绝,需要添加头部信息,如伪装User-Agent为浏览器。
七、构建请求头部
7.1 认识请求头部信息,如Accept-encoding、User-agent。了解不同浏览器的User-agent信息,伪装自己的User-agent以通过反爬机制。
8.1 构建请求对象,使用urllib.request.Request(url=url, headers=headers)。完成以上步骤,实现基于Fiddler和Urllib库的网络数据抓取与请求操作。
2024-11-29 23:21
2024-11-29 22:47
2024-11-29 22:38
2024-11-29 22:23
2024-11-29 22:23
2024-11-29 22:19