1.如何实现不使用无痕模式
self.browser = self.playwright_start.chromium.launch_persistent_context(
headless=False, #非无头模式
user_data_dir=r'your user dir', 设置缓存文件路径,可用chrome://version查看本地缓存文件
)
2.设置cookie
self.browser = self.playwright_start.chromium.launch(
headless=False, # 非无头模式
).new_context()
#通过给context添加cookie可以实现无痕模式下的自动登录
with open('state.json', 'r', encoding='utf8') as f:
cookies = json.load(f)
self.browser.add_cookies(cookies)
self.page = self.browser.new_page()
3.另一种方案保存及设置cookie
保存cookie,可以手动使用cookie editor插件来导出cookie.
也可以用如下代码:
# 这里是登录操作 ...使用此方案最好禁用图片css加载,不然网不好容易抓取不到
self.page.wait_for_load_state('domcontentloaded')
self.context.storage_state(path="./state.json") #保存cookie
使用cookie
#设置new_context 时,使用cookie
self.context = self.browser.new_context(storage_state="state.json")