fix: 修复调用flaresolverr时未将代理认证信息传入的问题

This commit is contained in:
Pollo
2025-08-12 16:12:22 +08:00
parent fdbfae953d
commit cbe81ba33c

View File

@@ -30,7 +30,7 @@ class PlaywrightHelper:
@staticmethod
def __flaresolverr_request(url: str,
cookies: Optional[str] = None,
proxy_url: Optional[str] = None,
proxy_config: Optional[dict] = None,
timeout: Optional[int] = 60) -> Optional[dict]:
"""
调用 FlareSolverr 解决 Cloudflare 并返回 solution 结果
@@ -51,8 +51,13 @@ class PlaywrightHelper:
payload["cookies"] = cookie_parse(cookies, array=True)
except Exception as e:
logger.debug(f"解析 cookies 失败,忽略: {str(e)}")
if proxy_url:
payload["proxy"] = {"url": proxy_url}
if proxy_config and proxy_config.get("server"):
proxy_payload = {"url": proxy_config["server"]}
if proxy_config.get("username"):
proxy_payload["username"] = proxy_config["username"]
if proxy_config.get("password"):
proxy_payload["password"] = proxy_config["password"]
payload["proxy"] = proxy_payload
try:
fs_api = settings.FLARESOLVERR_URL.rstrip("/") + "/v1"
@@ -97,11 +102,8 @@ class PlaywrightHelper:
fs_cookie_header = None
fs_ua = None
if settings.BROWSER_EMULATION == "flaresolverr":
proxy_url = None
if proxies and isinstance(proxies, dict):
proxy_url = proxies.get("server")
solution = self.__flaresolverr_request(url=url, cookies=cookies,
proxy_url=proxy_url, timeout=timeout)
proxy_config=proxies, timeout=timeout)
if solution:
fs_cookie_header = self.__fs_cookie_str(solution.get("cookies", []))
fs_ua = solution.get("userAgent")
@@ -158,11 +160,8 @@ class PlaywrightHelper:
# 如果配置为 FlareSolverr则直接调用获取页面源码
if settings.BROWSER_EMULATION == "flaresolverr":
try:
proxy_url = None
if proxies and isinstance(proxies, dict):
proxy_url = proxies.get("server")
solution = self.__flaresolverr_request(url=url, cookies=cookies,
proxy_url=proxy_url, timeout=timeout)
proxy_config=proxies, timeout=timeout)
if solution:
return solution.get("response")
except Exception as e: