From 2b805df001b0524297bbedb9b88bf8af8034c0f0 Mon Sep 17 00:00:00 2001 From: imnyang Date: Sat, 5 Jul 2025 15:14:17 +0900 Subject: [PATCH 1/2] env error --- .env.example | 1 - 1 file changed, 1 deletion(-) diff --git a/.env.example b/.env.example index 3166b8a..e161075 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,3 @@ -======= # 권장 (다른 모델로 교체 가능) [다른 모델로 교체시 성능 보장 불가] ANONYMIZED_TELEMETRY=false From 68eedc3fa43752bcd07201f9f1c2b64803884700 Mon Sep 17 00:00:00 2001 From: imnyang Date: Sat, 5 Jul 2025 15:28:57 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Chromium=20=EC=84=A4=EC=B9=98=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EC=9E=90=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=B3=B5?= =?UTF-8?q?=EC=82=AC=20=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.py | 13 +++++++------ src/lib/browser_use/init_profile.py | 8 +++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/setup.py b/setup.py index f4989fb..654e176 100644 --- a/setup.py +++ b/setup.py @@ -27,9 +27,10 @@ def create_file_from_example(target: str, example: str) -> bool: def install_playwright_chrome(): - print("\n🛠️ Playwright의 Chrome을 설치 중입니다...") + print("\n🛠️ Playwright의 Chromium을 설치 중입니다...") + print("👉 이 작업은 시간이 걸릴 수 있습니다. 잠시 기다려주세요.") try: - subprocess.run(['uv', 'run', 'playwright', 'install', 'chrome'], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + subprocess.run(['uv', 'run', 'playwright', 'install', 'chromium'], check=True) print("✅ Playwright Chrome 설치 완료.") except subprocess.CalledProcessError as e: if "already" in e.stdout.decode(): @@ -107,12 +108,13 @@ async def setup_user_data(): initial_actions=initial_actions, browser_profile=BrowserProfile( disable_security=True, - stealth=True, + #stealth=True, headless=False, device_scale_factor=1, window_size={"width": 1600, "height": 900}, viewport={"width": 1600, "height": 900}, user_data_dir="./data/user_data", + ignore_default_args=['--enable-automation'], ) ) @@ -168,8 +170,8 @@ if __name__ == "__main__": print("=====================================================") # 3. Windows 인코딩 문제 해결 - i_dont_like_windows() - print("=====================================================") + #i_dont_like_windows() + #print("=====================================================") # 4. Setup User Data asyncio.run(setup_user_data()) @@ -179,4 +181,3 @@ if __name__ == "__main__": # setup_sensitive() print("=====================================================") print("🎉 초기 설정이 완료되었습니다! 이제 스크립트를 실행할 준비가 되었습니다.") - print("🎉 초기 설정이 완료되었습니다! 이제 스크립트를 실행할 준비가 되었습니다.") diff --git a/src/lib/browser_use/init_profile.py b/src/lib/browser_use/init_profile.py index bfc38df..8f62638 100644 --- a/src/lib/browser_use/init_profile.py +++ b/src/lib/browser_use/init_profile.py @@ -14,7 +14,9 @@ async def GetProfile(headless=False): if USER_DATA_DIR and os.path.isdir(USER_DATA_DIR): try: tmp_user_data_dir = tempfile.mkdtemp() - shutil.copytree(USER_DATA_DIR, tmp_user_data_dir, dirs_exist_ok=True) + if os.path.exists(tmp_user_data_dir): + shutil.rmtree(tmp_user_data_dir) + shutil.copytree(USER_DATA_DIR, tmp_user_data_dir, dirs_exist_ok=False, ignore_dangling_symlinks=True) user_data_dir = tmp_user_data_dir print(f"✅ Copied user data dir to temporary location: {user_data_dir}") except Exception as e: @@ -23,12 +25,11 @@ async def GetProfile(headless=False): profile = BrowserProfile( # Security settings disable_security=True, - stealth=True, + #stealth=True, # Display settings headless=headless, device_scale_factor=1, window_size={"width": 1600, "height": 900}, - viewport={"width": 1600, "height": 900}, # Data persistence user_data_dir=user_data_dir, #storage_state=storage_state, @@ -36,6 +37,7 @@ async def GetProfile(headless=False): proxy={"server": proxy_url} if proxy_url else None, # Additional arguments args=get_browser_args(), + ignore_default_args=['--enable-automation'] ) return profile