Merge pull request #33 from j93es/feat/chromium

크로미움 사용, user data 복사 수정
This commit is contained in:
암냥 2025-07-05 15:33:21 +09:00 committed by GitHub
commit 08e7e34b9f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 10 deletions

View file

@ -1,4 +1,3 @@
=======
# 권장 (다른 모델로 교체 가능) [다른 모델로 교체시 성능 보장 불가]
ANONYMIZED_TELEMETRY=false

View file

@ -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("🎉 초기 설정이 완료되었습니다! 이제 스크립트를 실행할 준비가 되었습니다.")

View file

@ -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