From d01776e2abad17ae995ff95627c7c8e294773ccd Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sun, 5 Apr 2026 22:22:49 +0200 Subject: [PATCH] add stealth --- downloader.py | 14 +++++--------- flake.nix | 1 + requirements.txt | 1 + 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/downloader.py b/downloader.py index 9c72044..5866c47 100644 --- a/downloader.py +++ b/downloader.py @@ -4,6 +4,7 @@ import time from pathlib import Path from playwright.sync_api import sync_playwright, Page, Browser +from playwright_stealth import Stealth from config import Config @@ -194,21 +195,16 @@ def download_all_invoices() -> list[Path]: output_dir.mkdir(parents=True, exist_ok=True) saved = [] + stealth = Stealth() + with sync_playwright() as p: browser = p.chromium.launch( headless=Config.BROWSER_HEADLESS, args=["--disable-blink-features=AutomationControlled"], ) - context = browser.new_context( - user_agent=( - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " - "(KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" - ), - ) + context = browser.new_context() + stealth.apply_stealth_sync(context) page = context.new_page() - page.add_init_script( - "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})" - ) page.set_default_timeout(Config.BROWSER_TIMEOUT) login(page) diff --git a/flake.nix b/flake.nix index d1a7f06..0683104 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ packages = with pkgs; [ (python3.withPackages (ps: [ ps.playwright + ps.playwright-stealth ps."python-dotenv" ])) playwright-driver.browsers diff --git a/requirements.txt b/requirements.txt index 0d2473f..5ecd4e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ playwright>=1.40.0 +playwright-stealth>=1.0.6 python-dotenv>=1.0.0