mitmproxy使用
2022/4/11 6:13:07
本文主要是介绍mitmproxy使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
安装mitmproxy
- 安装:
pip install mitmproxy
; - 验证:命令行
mitmproxy --version
不报错,安装成;
mitmproxy
在用户目录下生成文件夹.mitproxy
,其中包含各种证书。
浏览器设置代理
- 打开Chrome,进行设置
- 填入如下参数
编写代码
- 架构,txt文件保存获得的cookie,html是利用cookie登录后获得的源码。
mitm.py
,用于mitmproxy启动时自动保存cookie,代码如下:
# -*- coding: utf-8 -*- """ =========================== mitmproxy 过滤器: - 主要用于筛选包含指定域名网址的cookie,并将其保存至文件cookie.txt。 =========================== """ # @Environment : Windows10 + Python 3.8; # @IDLE : PyCharm; # @Install modules : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx; # @Project Name : web; # @File Name : mitm.py; # @Author Email : wh98898@163.com; # @Author Wechat_id : i_biology; # @Created Time : 2022/4/11 0:37; # TODO(i_biology) Created at 2022/4/11 0:37; # Finished at 2022/4/11 0:37 # built-in modules # third modules # user defined modules # Constant url = 'baidu.com' def response(flow): # flow.request.headers["user-agent"] = "zhangwenhao" request = flow.request if '.png' in request.url or url not in request.url: return # 如果不在观察的url内则返回 if url in request.url: print(request.url) cookies = dict(request.cookies) # 转换cookies格式为dict if cookies: save_cookies(repr(cookies)) # 如果不为空保存cookies def save_cookies(cookies): with open("cookies.txt", "w") as f: f.write(cookies) f.flush()
login_baidu.py
用于利用selenium登录百度,代码如下:
# -*- coding: utf-8 -*- """ =========================== 登录百度 =========================== """ # @Environment : Windows10 + Python 3.8; # @IDLE : PyCharm; # @Install modules : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx; # @Project Name : web; # @File Name : login_baidu.py; # @Author Email : wh98898@163.com; # @Author Wechat_id : i_biology; # @Created Time : 2022/4/11 0:47; # TODO(i_biology) Created at 2022/4/11 0:47; # Finished at 2022/4/11 0:47 # built-in modules import logging from time import sleep # third modules from selenium import webdriver from selenium.webdriver.common.by import By # user defined modules # Constant logging.basicConfig(level=logging.INFO) # 日志级别 driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) url = 'https://www.baidu.com/' driver.get(url) # 打开百度 driver.find_element(By.XPATH, '//*[@id="s-top-loginbtn"]').click() # 点击登录 driver.find_element(By.XPATH, '//*[@id="TANGRAM__PSP_11__userName"]').send_keys("15097257986") # 输入账号 driver.find_element(By.XPATH, '//*[@id="TANGRAM__PSP_11__password"]').send_keys("BD_zwh_910227!") # 输入密码 driver.find_element(By.XPATH, '//*[@id="TANGRAM__PSP_11__submit"]').click() # 点击登录 sec = 20 # 时间要长一些,因为需要手动拖动验证,注意控制手速 logging.info(f"休息{sec}秒后关闭浏览器") sleep(sec) driver.quit() logging.info("浏览器已经关闭")
is_login_success.py
验证cookie是否可以成功登录,代码如下:
# -*- coding: utf-8 -*- """ =========================== 验证由mitmproxy获得的cookie是否可以成功登录百度 =========================== """ # @Environment : Windows10 + Python 3.8; # @IDLE : PyCharm; # @Install modules : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx; # @Project Name : web; # @File Name : is_login_success.py; # @Author Email : wh98898@163.com; # @Author Wechat_id : i_biology; # @Created Time : 2022/4/11 0:45; # TODO(i_biology) Created at 2022/4/11 0:45; # Finished at 2022/4/11 0:45 # built-in modules # third modules import requests # user defined modules import utils # Constant url = "https://www.baidu.com/my/index" cookies = utils.get_cookie() header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/100.0.4896.75 Safari/537.36'} re = requests.get(url=url, headers=header, cookies=cookies, verify=False, allow_redirects=True) with open('baidu.html', 'w', encoding="utf-8") as f: print(re.content.decode("utf-8"), file=f)
utils.py
工具,代码如下
# -*- coding: utf-8 -*- """ =========================== 工具类 =========================== """ # @Environment : Windows10 + Python 3.8; # @IDLE : PyCharm; # @Install modules : pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx; # @Project Name : web; # @File Name : utils.py; # @Author Email : wh98898@163.com; # @Author Wechat_id : i_biology; # @Created Time : 2022/4/11 0:40; # TODO(i_biology) Created at 2022/4/11 0:40; # Finished at 2022/4/11 0:40 # built-in modules # third modules # user defined modules # Constant def get_cookie(cookie_file='cookies.txt'): with open(cookie_file) as f: return eval(f.read())
命令行运行
mitmweb -s mitm.py
;
python执行脚本login_baidu.py;
python执行脚本is_login_success.py;
本地浏览器打开baidu.html文件,截图如下,说明登录成功:
这篇关于mitmproxy使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行