Proxy设置代理
工作中如果访问被测系统时需要设置代理,playwright框架下可以通过添加proxy 参数设置代理。本文就来总结一下proxy参数如何设置代理。
1、launch 启动全局代理
launch 启动的时候设置全局代理,以下是示例:
不需要身份验证:
browser = p.chromium.launch(proxy={'server': 'http://ip:port'})
需要身份验证:
browser = p.chromium.launch(proxy={'server': 'http://ip:port', 'username':'用户名', 'password':'密码'})
proxy 参数说明
proxy 传 dict 类型,可以设置的参数有
server ;代理服务器地址。例如,支持HTTP和SOCKS代理http://myproxy.com:3128或socks5://myproxy.com:3128。缩写myproxy.com:3128被认为是HTTP代理
bypass 可选,逗号分隔域以绕过代理,例如“.com、chromium.org、.domain.com”。
username 可选,如果HTTP代理需要身份验证,则使用用户名。
password 可选,如果HTTP代理需要身份验证,则使用密码。
2、context上下文设置代理
context = browser.new_context(proxy={‘server’: ‘http://ip:port’})
需要注意的是,对于Windows上的Chromium浏览器需要launch设置全局代理,对于firefox 和 webkit 系列浏览器,可以不用在launch设置proxy。如果launch和上下文同时设置了proxy代理,会使用上下文中设置的代理。
3、new_page() 设置代理
注意,基于 context 创建的的new_page() 是没有proxy参数的,
基于browser 创建的new_page() 有proxy参数。
from playwright.sync_api import Playwright, sync_playwright
with sync_playwright() as playwright:
browser = playwright.firefox.launch(headless=False)
page = browser.new_page(proxy={'server': 'http://ip:port'})
4、非无痕模式启动浏览器launch_persistent_context
非无痕模式启动浏览器只能在launch_persistent_context()添加proxy参数
from playwright.sync_api import Playwright, sync_playwright
with sync_playwright() as playwright:
context = playwright.chromium.launch_persistent_context(
proxy={'server': 'http://ip:port'}}
)