Python实现Https监听
安装playwright
playwright官网:https://playwright.dev/python/
首先配置环境,安装playwright: pip install playwright
安装完成之后,进行本地浏览器的实例创建,代码如下:
from playwright.sync_api import sync_playwright as playwright
def https(response):
if response.url == 'https://www.baidu.com/':
print("请求头:", response.headers)
print("响应内容:", response.text())
with playwright() as pw:
# 调用本地浏览器
browser = pw.chromium.launch_persistent_context( # 调用本地安装的浏览器
# 缓存地址
user_data_dir=r'xxxx\Local\Google\Chrome\User Data',
# 启动路径
executable_path=r'xxxx\Google\Chrome\Application\chrome.exe',
# 关闭无头模式
headless=False,
# 跳过检测
args=['--disable-blink-features=AutomationControlled', '--enable-automation']
)
page = browser.new_page()
page.on('response', https)
page.goto('https://www.baidu.com')
# 浏览器保持开启状态
page.wait_for_timeout(1000000000)
- 第12行使用
pw.chromium.launch_persistent_context
拉起本地浏览器 - 第14、16行配置本地浏览器所对应的缓存地址和启动路径
- 第18行的无头模式是指,是否在后台运行,如果设置为true,则不会进行显示浏览器,只会在后台显示
- 第20行是用来屏蔽某些网站对自动化浏览器的检测
- 第23行监听http请求的response,具体方法查看playwright的api文档, 这个方法需要传入一个函数作为callback,对应4-7行的代码
如何找到缓存地址和启动路径
打开谷歌浏览器,导航栏输入访问chrome://version/
,跳转到chrome浏览器的信息页面,如下图:
- 图中可执行文件路径对应代码中的启动路径
- 图中个人资料路径对应代码中的缓存路径,只需要前面到User Data的目录路径
response的内容
上面代码提到了通过page.on('response', callback)
实现对http的监听,并且将监听内容返回给callback函数,在callback函数中拿到的监听内容可以访问到以下内容:
def callback(response):
# 响应的URL
print(response.url)
# 请求头
print(response.headers)
# bytes类型的响应
print(response.body())
# 文本类型响应
print(response.text())
# Json类型响应
print(response.json())
此处评论已关闭