mirror of
https://github.com/dreammis/social-auto-upload.git
synced 2026-06-04 21:03:37 +08:00
## 背景与复现问题 当前架构中,许多用户即使在 `conf.py` 中配置了 `LOCAL_CHROME_HEADLESS=False` 以及自己的 `LOCAL_CHROME_PATH`,扫码登录时依然会调用自带的不隐身内核,这诱发了两个严重阻断: 1. 环境变量逃逸:因为散落在 `login.py` 等文件中大多只传了 `headless` 参数,并未传递 `executable_path`,导致外部浏览器配置彻底失效。 2. 反爬风控假死:系统直接抛出的 `webdriver=true` 会遭来抖音/小红书级别极其严厉的滑块甚至二维码阻断,最终卡死,后台报错 `监听页面跳转超时`。 ## 本次修复 1. **全局接管配置**:构建统一的浏览器环境变量拦截钩子 `utils/browser_hook.py`。 2. **防风控注入**:加入 `--disable-blink-features=AutomationControlled` 隐藏驱动器指纹,免受大数据识别拦截,极大提升扫码登入与发布的通过率。 3. **修复登录扫码挂载**:改写 `login.py` 对接,已验证能够丝滑拉起本地指纹浏览器。
18 lines
500 B
Python
18 lines
500 B
Python
from conf import LOCAL_CHROME_HEADLESS, LOCAL_CHROME_PATH
|
|
|
|
def get_browser_options():
|
|
options = {
|
|
'headless': LOCAL_CHROME_HEADLESS,
|
|
'args': [
|
|
'--disable-blink-features=AutomationControlled',
|
|
'--lang=zh-CN',
|
|
'--disable-infobars',
|
|
'--start-maximized',
|
|
'--no-sandbox',
|
|
'--disable-web-security'
|
|
]
|
|
}
|
|
if LOCAL_CHROME_PATH:
|
|
options['executable_path'] = LOCAL_CHROME_PATH
|
|
return options
|