Python|MitmProxy代理抓包工具实践难点

简介: Python|MitmProxy代理抓包工具实践难点

前言

最近小编利用MitmProxy代理抓包所遇到了一些实践难点,因为看过一些介绍MitmProxy代理抓包的博客,故如何安装MitmProxy的步骤不做介绍,我只将自己遇到的实践问题介绍并解决,希望对读者有所帮助。

(本篇博客基于

https://blog.csdn.net/fei347795790/article/details/107284720/该博客的实践所遇问题的解决方案。)


所遇实践问题

获取手机端证书

我所读的一篇博客的介绍方法:将手机端的代理ip设置和pcip地址一致,代理端口号设置为:8080;然后手机端浏览器访问mitm.im进行下载证书。照此方法不过我的手机(小米手机)并不会出现证书下载界面,而会出现另一个界面;

再参考了另外几篇博客后,我选择了一种解决方案。

解决方案:找到你所下载好的MitmProxy安装文件(如下图),然后双击mitmproxy-ca.p12文件进行pc端证书导入,其中涉及到几处导入选项,具体操作参考博客即可:

然后将其中的mitmproxy-ca-cert.pem文件发送到手机,小米手机一般不能直接识别pem文件(本人小米手机);此时我们打开:设置-WLAN-高级设置-安装证书-找到接收的mitmproxy-ca-cert.pem文件;证书名称为mitmproxy即可。

此时我们就将pc以及手机端的证书安装问题解决完毕了。


原文的代码运行逻辑顺序问题

说实话,我读完原文可能不是很能理解原文的代码逻辑顺序,其实有些代码是不必要的代码,可能有些混淆;

我们需要的py代码分别是原文的:

main.py ; read_cookie.py;write_cookie.py;wxCrawler.py  

总结后的原文的逻辑顺序:以main.py为脚本启动代码,去启动read_cookie.py,而read_cookie.py中以os模块的system去启动cmd命令,然后cmdmitmproxy启动write_cookie.py脚本获取数据,然后将数据保存到所创建的cookie.text文件中;然后再main.py继续执行启动wxCrawler.py脚本代码,wxCrawler.py脚本代码主要是去爬取微信公众号的文章列表,并打印。


写入str_to_dict()函数方法

在原博客的代码中有一个get_params方法,其中的str_to_dict()函数方法需要手动写入,但原文描述有点不清楚;将str数据类型转换为dict类型,否则会出现utilsstr_to_dict()方法报错。

操作方法:在pycharm操作上,我们只需按住ctrl键,然后用鼠标左键点击utils模块即可写入函数方法;

写入的函数方法:


原博客中的格式

原博客中的空格以及一些符号存在不规范以及运行代码的格式不对,以及爬取链接等链接格式均存在大大小小的错误;修改后的原文代码:


运行

我们只需要打开公众号,随便点击一个文章刷新即可抓取公众号文章。

运行结果图:


总结

本文主要是以mitmproxy工具代理抓包所遇的实践难点所总结的一篇解决方案的博客,以及原博客中的一些描述不清楚的地方的一些解析,及问题的解决,希望对读者有所帮助。

目录
相关文章
|
6天前
|
人工智能 数据可视化 数据挖掘
Python:编程语言的魅力与实践
Python:编程语言的魅力与实践
|
3天前
|
网络协议 网络架构 Python
Python 网络编程基础:套接字(Sockets)入门与实践
【5月更文挑战第18天】Python网络编程中的套接字是程序间通信的基础,分为TCP和UDP。TCP套接字涉及创建服务器套接字、绑定地址和端口、监听、接受连接及数据交换。UDP套接字则无连接状态。示例展示了TCP服务器和客户端如何使用套接字通信。注意选择唯一地址和端口,处理异常以确保健壮性。学习套接字可为构建网络应用打下基础。
19 7
|
3天前
|
缓存 Python
Python中的装饰器应用及实践
Python中的装饰器是一种强大的编程工具,它可以在不更改原函数代码的情况下,对函数进行扩展和修改。本文将介绍装饰器的基本概念,探讨其在Python开发中的实际应用,并结合示例代码进行详细解析。
|
3天前
|
网络协议 数据处理 调度
深入探索Python异步编程:asyncio库的应用与实践
在现代软件开发中,异步编程已成为处理并发和I/O密集型任务的重要策略。本文将带您深入探索Python的asyncio库,解析其背后的设计原理,并通过实例展示如何在实际项目中应用asyncio实现高效的异步编程。我们不仅会探讨asyncio的基本用法,还会分析其性能优势,并探讨其与其他并发模型的比较。此外,文章还将涵盖asyncio在Web开发、网络编程和数据处理等场景中的应用案例,帮助您更好地理解并掌握这一强大的异步编程工具。
|
4天前
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
41 2
|
6天前
|
Python
在Python中快捷引入缺失包的技巧和实践
在Python中快捷引入缺失包的技巧和实践
13 0
|
6天前
|
人工智能 Python
Python中的反对称矩阵:理论、应用与代码实践
Python中的反对称矩阵:理论、应用与代码实践
27 1
|
6天前
|
机器学习/深度学习 数据采集 数据可视化
利用Python进行历史数据预测:从入门到实践的两个案例分析
利用Python进行历史数据预测:从入门到实践的两个案例分析
25 1
|
6天前
|
测试技术 Python
Python模块化方式编程实践
【5月更文挑战第5天】Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
44 2
|
6天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
17 4