From 68eedc3fa43752bcd07201f9f1c2b64803884700 Mon Sep 17 00:00:00 2001 From: imnyang Date: Sat, 5 Jul 2025 15:28:57 +0900 Subject: [PATCH] =?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