fix(zhihu): 修复 Cookie 设置时机问题
- 将 context 创建移到 cookie 设置之前 - 使用 add_cookies 方法替代初始化时传入 - 添加 .gitignore 忽略 __pycache__ 等文件
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
|||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
*.so
|
||||||
|
.Python
|
||||||
|
*.egg-info/
|
||||||
|
.eggs/
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
*.log
|
||||||
|
.env
|
||||||
@@ -41,16 +41,17 @@ class PlaywrightBrowser:
|
|||||||
'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
|
'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.context = self.browser.new_context(**context_options)
|
||||||
|
|
||||||
# 如果提供了 Cookie,设置 Cookie
|
# 如果提供了 Cookie,设置 Cookie
|
||||||
if cookie:
|
if cookie:
|
||||||
context_options['cookies'] = self._parse_cookie(cookie)
|
self._add_cookies(cookie)
|
||||||
|
|
||||||
self.context = self.browser.new_context(**context_options)
|
|
||||||
self.page = self.context.new_page()
|
self.page = self.context.new_page()
|
||||||
self.page.set_default_timeout(self.timeout)
|
self.page.set_default_timeout(self.timeout)
|
||||||
|
|
||||||
def _parse_cookie(self, cookie_str: str) -> list:
|
def _add_cookies(self, cookie_str: str):
|
||||||
"""解析 Cookie 字符串为 Playwright 格式"""
|
"""添加 Cookie 到浏览器上下文"""
|
||||||
cookies = []
|
cookies = []
|
||||||
for item in cookie_str.split(';'):
|
for item in cookie_str.split(';'):
|
||||||
item = item.strip()
|
item = item.strip()
|
||||||
@@ -65,7 +66,7 @@ class PlaywrightBrowser:
|
|||||||
'httpOnly': False,
|
'httpOnly': False,
|
||||||
'sameSite': 'Lax'
|
'sameSite': 'Lax'
|
||||||
})
|
})
|
||||||
return cookies
|
self.context.add_cookies(cookies)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""关闭浏览器"""
|
"""关闭浏览器"""
|
||||||
|
|||||||
Reference in New Issue
Block a user