From a89b261fa217a1ab1d068b66903df3ffa13934b7 Mon Sep 17 00:00:00 2001 From: "Khoa.vo" Date: Fri, 19 Dec 2025 17:55:43 +0700 Subject: [PATCH] Fix anti-bot detection with playwright-stealth --- backend/core/playwright_manager.py | 7 +++++++ backend/requirements.txt | 2 ++ 2 files changed, 9 insertions(+) diff --git a/backend/core/playwright_manager.py b/backend/core/playwright_manager.py index f259619..7c7f4a5 100644 --- a/backend/core/playwright_manager.py +++ b/backend/core/playwright_manager.py @@ -12,6 +12,7 @@ import json import os from typing import List, Dict, Optional from playwright.async_api import async_playwright, Response, Browser, BrowserContext +from playwright_stealth import stealth_async COOKIES_FILE = "cookies.json" @@ -158,6 +159,7 @@ class PlaywrightManager: ) cls._vnc_page = await cls._vnc_context.new_page() + await stealth_async(cls._vnc_page) await cls._vnc_page.goto("https://www.tiktok.com/login", wait_until="domcontentloaded") cls._vnc_active = True @@ -258,6 +260,7 @@ class PlaywrightManager: ) page = await context.new_page() + await stealth_async(page) try: # Navigate to TikTok login page @@ -376,6 +379,7 @@ class PlaywrightManager: ) page = await context.new_page() + await stealth_async(page) # Navigate to TikTok login await page.goto("https://www.tiktok.com/login", wait_until="domcontentloaded") @@ -480,6 +484,7 @@ class PlaywrightManager: await context.add_cookies(cookies) page = await context.new_page() + await stealth_async(page) # Set up response listener page.on("response", handle_response) @@ -640,6 +645,7 @@ class PlaywrightManager: await context.add_cookies(cookies) page = await context.new_page() + await stealth_async(page) page.on("response", handle_response) try: @@ -718,6 +724,7 @@ class PlaywrightManager: await context.add_cookies(cookies) page = await context.new_page() + await stealth_async(page) page.on("response", handle_response) try: diff --git a/backend/requirements.txt b/backend/requirements.txt index 18993a0..4904af9 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -6,3 +6,5 @@ python-multipart websockets python-dotenv crawl4ai +playwright +playwright-stealth