前言
最近小编利用MitmProxy代理抓包所遇到了一些实践难点,因为看过一些介绍MitmProxy代理抓包的博客,故如何安装MitmProxy的步骤不做介绍,我只将自己遇到的实践问题介绍并解决,希望对读者有所帮助。
(本篇博客基于
https://blog.csdn.net/fei347795790/article/details/107284720/该博客的实践所遇问题的解决方案。)
所遇实践问题
获取手机端证书
我所读的一篇博客的介绍方法:将手机端的代理ip设置和pc端ip地址一致,代理端口号设置为: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命令,然后cmd以mitmproxy启动write_cookie.py脚本获取数据,然后将数据保存到所创建的cookie.text文件中;然后再main.py继续执行启动wxCrawler.py脚本代码,wxCrawler.py脚本代码主要是去爬取微信公众号的文章列表,并打印。
写入str_to_dict()函数方法
在原博客的代码中有一个get_params方法,其中的str_to_dict()函数方法需要手动写入,但原文描述有点不清楚;将str数据类型转换为dict类型,否则会出现utils无str_to_dict()方法报错。
操作方法:在pycharm操作上,我们只需按住ctrl键,然后用鼠标左键点击utils模块即可写入函数方法;
写入的函数方法:
原博客中的格式
原博客中的空格以及一些符号存在不规范以及运行代码的格式不对,以及爬取链接等链接格式均存在大大小小的错误;修改后的原文代码:
运行
我们只需要打开公众号,随便点击一个文章刷新即可抓取公众号文章。
运行结果图:
总结
本文主要是以mitmproxy工具代理抓包所遇的实践难点所总结的一篇解决方案的博客,以及原博客中的一些描述不清楚的地方的一些解析,及问题的解决,希望对读者有所帮助。
END
实习编辑 | 王文星
责 编 | W Z Y
where2go 团队