Playwright Web Scraping Complete Guide 2026 - Von der Installation bis zur Umgehung von Anti-Bots

Ich habe Playwright installiert, Crawling-Code und Anti-Bot-Umgehung in einem Artikel zusammengefasst. Enthält praktische Beispiele für Python und Node.js. Überprüfen Sie auch die Vergleichstabelle für Geschwindigkeit und Stabilität von Selenium und Puppeteer.

226
Playwright Web Scraping Complete Guide 2026 - Von der Installation bis zur Umgehung von Anti-Bots

Playwright ist das am weitesten verbreitete Open-Source-Browser-Automatisierungstool für das Crawlen dynamischer Websites im Jahr 2026. Es wurde von Microsoft entwickelt und ermöglicht die Steuerung von Chromium, Firefox und WebKit über eine einzige API und unterstützt sowohl Python als auch Node.js. Es führt den Browser tatsächlich aus, um Daten aus Umgebungen zu extrahieren, die nicht mit Requests oder BeautifulSoup verarbeitet werden können, wie z.B. JavaScript-Renderingseiten, Dienste, die eine Anmeldung erfordern, und endlose Scroll-Feeds.

Zusammenfassung
- Playwright ist schneller als Selenium und unterstützt standardmäßig automatisches Warten, Netzwerkinterception und parallele Verarbeitung
- Die Installation erfolgt in Python mit nur 2 Zeilen Code (pip install playwright + playwright install)
- Mit der Weiterentwicklung von Anti-Bot-Technologien wie Cloudflare AI Labyrinth im Jahr 2025 stößt playwright-stealth an seine Grenzen
- Durch die Integration von MCP (Model Context Protocol) hat das Zeitalter begonnen, in dem KI-Agenten den Browser direkt steuern
- Bei der Produktion des Crawlings von mehr als 300.000 Anfragen pro Monat sollten Sie den Vergleich zwischen Eigenbau (590-1.030 Millionen Won pro Monat) und Managed Services (300 Millionen Won pro Monat) durchführen

In diesem Artikel werden die Installation von Playwright, grundlegende und fortgeschrittene Crawling-Codes, ein Vergleich zwischen Selenium und Puppeteer, Strategien zur Umgehung von Anti-Bots, das MCP-Ökosystem und eine Kostenanalyse in einem Artikel zusammengefasst.


1. Was ist Playwright und warum wird es zum Crawlen verwendet?

Playwright ist ein von Microsoft im Jahr 2020 veröffentlichtes Open-Source-Browser-Automatisierungsframework. Es ermöglicht die Steuerung von Chromium, Firefox, WebKit (Safari Engine) über eine einzige API und unterstützt Python, Node.js, Java und C#.

Aus der Perspektive des Crawlings gibt es drei Gründe, warum Playwright Aufmerksamkeit erregt.

Automatisches Warten (auto-wait): Wenn Sie ein Element mit page.locator() auswählen, wartet es automatisch, bis das Element auf dem Bildschirm erscheint. Es ist keine manuelle Zeiteinstellung wie bei time.sleep() erforderlich.

Netzwerkinterception: Sie können alle während des Seitenladens auftretenden HTTP-Anfragen abfangen und bearbeiten. Durch direkte Aufrufe interner APIs ohne Web-UI können Daten schneller gesammelt werden.

Multi-Context: In einer Browserinstanz können mehrere unabhängige Sitzungen gleichzeitig ausgeführt werden, was das parallele Crawlen effizient macht.


2. Welches Tool sollte man für das Crawlen wählen: Playwright, Selenium oder Puppeteer?

Die Frage, welches Tool für ein neues Projekt verwendet werden soll, wird häufig gestellt. Die Kernunterschiede der drei Tools sind in der folgenden Tabelle zusammengefasst.

Kriterium Playwright Selenium Puppeteer
Veröffentlichung 2020 2004 2018
Browserunterstützung Chromium, Firefox, WebKit Alle Browser Nur Chromium
Sprachunterstützung Python, JS/TS, Java, C# 7 Sprachen Nur Node.js
Automatisches Warten Standardmäßig integriert Manuelle Konfiguration erforderlich Manuelle Konfiguration erforderlich
Ausführungsgeschwindigkeit Am schnellsten Langsam Schnell
Parallele Verarbeitung BrowserContext standardmäßig verfügbar Separate Implementierung erforderlich Separate Implementierung erforderlich
Stealth-Unterstützung playwright-stealth selenium-wire puppeteer-extra
Wartung Aktive Verbesserung durch Microsoft Community-basiert Verbesserung durch Google
Community Schnelles Wachstum Reife, viele Legacy-Systeme Mittelständig

Empfohlene Auswahl für 2026:

  • Playwright: Für neue Projekte, dynamische Websites und wenn eine Unterstützung für mehrere Browser erforderlich ist
  • Selenium: Für die Kompatibilität mit bestehenden Legacy-Systemen und wenn ältere Browser wie IE benötigt werden
  • Puppeteer: Wenn Chrome ausreicht und Sie mit dem Node.js-Ökosystem vertraut sind

3. Wie installiert man Playwright?

In Python-Umgebung

# Playwright 설치
pip install playwright

# 브라우저 바이너리 설치 (Chromium, Firefox, WebKit 세 가지 모두)
playwright install

# Chromium만 설치하려면
playwright install chromium

In Node.js-Umgebung

# 새 프로젝트 초기화 (대화형 설정)
npm init playwright@latest

# 또는 직접 설치
npm install playwright
npx playwright install

In Docker-Umgebung

Wenn Sie Playwright auf einem Server ausführen möchten, ist die Verwendung des offiziellen Docker-Images von Microsoft am einfachsten.

FROM mcr.microsoft.com/playwright/python:v1.58.0-noble

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "crawler.py"]

4. Grundlegendes Crawling — Extrahieren von Daten in 5 Minuten

Python-Beispiel: Sammeln von Nachrichtenschlagzeilen

from playwright.sync_api import sync_playwright

def scrape_headlines():
    with sync_playwright() as p:
        # headless=True 로 설정하면 브라우저 창 없이 실행
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()

        page.goto("https://news.ycombinator.com")

        # 모든 뉴스 제목 선택
        items = page.locator(".titleline > a").all()
        headlines = [item.inner_text() for item in items]

        for i, title in enumerate(headlines[:10], 1):
            print(f"{i}. {title}")

        browser.close()
        return headlines

if __name__ == "__main__":
    scrape_headlines()

Node.js-Beispiel: Dasselbe Vorgehen

const { chromium } = require('playwright');

async function scrapeHeadlines() {
  const browser = await chromium.launch({ headless: true });
  const page = await browser.newPage();

  await page.goto('https://news.ycombinator.com');

  const headlines = await page.locator('.titleline > a').allInnerTexts();

  headlines.slice(0, 10).forEach((title, i) => {
    console.log(`${i + 1}. ${title}`);
  });

  await browser.close();
  return headlines;
}

scrapeHeadlines();

Sie können auch Screenshots speichern und PDFs erstellen.

# 스크린샷 저장
page.screenshot(path="screenshot.png", full_page=True)

# PDF 저장 (Chromium만 지원)
page.pdf(path="page.pdf")

5. Fortgeschrittene Crawling-Techniken

Automatische Handhabung von Paginierung

from playwright.sync_api import sync_playwright

def scrape_paginated(base_url, max_pages=5):
    results = []
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()

        for page_num in range(1, max_pages + 1):
            page.goto(f"{base_url}?page={page_num}")
            # 요소가 로드될 때까지 대기
            page.wait_for_selector(".product-item")

            items = page.locator(".product-item").all()
            for item in items:
                results.append(item.inner_text())

            # 다음 페이지 버튼이 없으면 종료
            if not page.locator(".next-page").count():
                break

        browser.close()
    return results

Behandlung von endlosem Scrollen

def scrape_infinite_scroll(url, scroll_count=10):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        page.goto(url)

        prev_count = 0
        for _ in range(scroll_count):
            # 페이지 맨 아래까지 스크롤
            page.evaluate("window.scrollTo(0, document.body.scrollHeight)")
            # 새 콘텐츠 로딩 대기
            page.wait_for_timeout(1500)

            current_count = page.locator(".item").count()
            if current_count == prev_count:
                break  # 더 이상 로딩되지 않으면 종료
            prev_count = current_count

        items = page.locator(".item").all_inner_texts()
        browser.close()
        return items

Netzwerkinterception — Direktes Extrahieren von APIs

Wenn Sie die Antwort interner APIs auf JavaScript-Renderingseiten direkt erfassen, können Sie saubere JSON-Daten erhalten, ohne HTML parsen zu müssen.

import json

def intercept_api(url):
    captured_data = []

    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()

        # API 응답을 가로채는 핸들러 등록
        def handle_response(response):
            if "api/products" in response.url and response.status == 200:
                try:
                    data = response.json()
                    captured_data.extend(data.get("items", []))
                except Exception:
                    pass

        page.on("response", handle_response)
        page.goto(url)
        page.wait_for_load_state("networkidle")

        browser.close()
    return captured_data

Parallele Verarbeitung mehrerer Seiten

from playwright.sync_api import sync_playwright

def scrape_parallel(urls):
    results = {}
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        # BrowserContext로 독립 세션 생성
        context = browser.new_context()

        pages = [context.new_page() for _ in urls]
        for page, url in zip(pages, urls):
            page.goto(url, wait_until="domcontentloaded")

        for page, url in zip(pages, urls):
            results[url] = page.title()

        browser.close()
    return results

Verwandte Anleitungen: Vollständige Anleitung zum Crawlen von Coupang | Vollständige Anleitung zum Crawlen von Instagram


6. Wie umgeht man Anti-Bot-Systeme? (Neueste Techniken im Jahr 2026)

Große Plattformen wie Coupang, Naver und Instagram betreiben ausgefeilte Anti-Bot-Systeme wie Cloudflare Turnstile, DataDome und Akamai Bot Manager. Hier sind die gängigen Methoden zur Umgehung dieser Systeme im Jahr 2026.

Anwendung von playwright-stealth

playwright-stealth patcht die wichtigsten Signale zur Erkennung von Headless-Browsern. Es entfernt Eigenschaften wie navigator.webdriver, ändert den User-Agent und tarnt den WebGL-Renderer, um automatisch zu handeln.

pip install playwright-stealth
from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    stealth_sync(page)  # 스텔스 적용
    page.goto("https://target-site.com")

User-Agent-Rotation

import random

USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
]

context = browser.new_context(
    user_agent=random.choice(USER_AGENTS)
)

Proxy-Einstellungen

context = browser.new_context(
    proxy={
        "server": "http://proxy-server:8080",
        "username": "user",
        "password": "password"
    }
)

Simulation menschlichen Verhaltens

import random

# 마우스 움직임 추가
page.mouse.move(
    random.randint(100, 800),
    random.randint(100, 600)
)

# 자연스러운 타이핑 딜레이
page.locator("#search").type("검색어", delay=random.randint(80, 150))

# 스크롤 후 짧은 대기
page.evaluate("window.scrollBy(0, 300)")
page.wait_for_timeout(random.randint(800, 2000))

Wichtige Anti-Bot-Trends im Jahr 2026

Cloudflare AI Labyrinth: Eine neue Verteidigungsmethode, die Cloudflare im März 2025 vorgestellt hat. Anstatt Bots zu blockieren, leitet sie sie in ein Labyrinth aus vom KI generierten Fake-Seiten. Da ein Mensch niemals mehr als 4 Ebenen tief navigieren würde, werden Clients, die tiefer eindringen, automatisch als Bots erkannt und ihr Fingerprint wird registriert. Das Ziel ist nicht nur die einfache Blockierung, sondern Identifizierung und Verfolgung.

Canvas/WebGL-Fingerprinting: Anti-Bot-Systeme erstellen einen eindeutigen Browser-Fingerprint, indem sie die Ergebnisse des Canvas-Renderings, Informationen zum WebGL-Renderer und die Ergebnisse der AudioContext-Verarbeitung kombinieren. Es ist schwierig, dies allein mit playwright-stealth zu umgehen, daher sollte es in Kombination mit separaten Fingerprint-Tarnbibliotheken wie browserforge verwendet werden.

Grenzen: Wie auch in der offiziellen Dokumentation von playwright-stealth erwähnt, umgeht diese Bibliothek nur einfache Erkennungen. Gegen Enterprise Anti-Bot-Systeme wie DataDome und Akamai sind die Effekte einzelner Umgehungsmethoden begrenzt.

Verwandte Anleitungen: Vollständige Anleitung zur Legalität des Crawlings


7. Playwright-Ökosystem im Jahr 2026 — MCP und KI-Automatisierung

Playwright MCP Server

Die bedeutendste Veränderung im Playwright-Ökosystem im Jahr 2026 ist die Integration von MCP (Model Context Protocol). Mit dem offiziellen von Microsoft bereitgestellten Paket playwright-mcp können KI-Agenten wie Claude, GPT und Cursor den Browser direkt über natürliche Sprachbefehle steuern.

# Claude Desktop에 Playwright MCP 연동
npx @playwright/mcp@latest

Wenn ein KI-Agent beispielsweise die Anweisung "Hole die Produktliste dieser Seite" erhält, wandelt der MCP-Server dies in Playwright-Befehle um, führt sie aus und liefert das Ergebnis zurück. Auf diese Weise ist die Browser-Automatisierung auch ohne direktes Schreiben von Code möglich.

Es ist jedoch wichtig, die Tokenverbrauchseffizienz zu beachten. Laut Microsoft verbraucht Playwright MCP für dieselbe Aufgabe etwa 114.000 Token, während Playwright CLI etwa 27.000 Token verbraucht. Für groß angelegte wiederholte Aufgaben ist die CLI-Methode kosteneffizienter.

Stagehand / Browser Use

Stagehand (Browserbase) und Browser Use sind Frameworks, die auf Playwright eine KI-Schicht hinzufügen. Wenn Sie beispielsweise Anweisungen wie "Klicken Sie auf die nächste Seite" in natürlicher Sprache geben, analysiert die KI den DOM und führt die entsprechende Aktion aus. Der wesentliche Vorteil besteht darin, dass es auch bei Änderungen in der Website-Struktur ohne Neucodierung funktioniert.

Hashscraper MCP Server

Wenn Sie einen speziellen Crawling-MCP-Server suchen, können Sie den von Hashscraper bereitgestellten @scrapi.ai/mcp-server in Betracht ziehen. Mit nur einem MCP-Befehl können Sie Crawling-Ergebnisse erhalten, ohne die Playwright-Infrastruktur selbst aufbauen zu müssen.

Verwandte Anleitungen: Vollständige Anleitung zum Crawlen mit KI-Agenten


8. Ist Playwright allein ausreichend? Grenzen und realistische Alternativen

Grenzen von Playwright

Obwohl Playwright ein leistungsstarkes Tool ist, stoßen Sie bei der kontinuierlichen Nutzung in der Produktionsumgebung auf mehrere realistische Grenzen.

  • IP-Blockierung: Wiederholte Anfragen von derselben IP führen zur Blockierung. Die Verwaltung von Proxy-Pools ist unerlässlich, und es ist schwierig, inländische IPs zu erhalten.
  • Anti-Bot-Updates: Cloudflare, DataDome und andere aktualisieren kontinuierlich ihre Erkennungslogik. Was heute funktioniert, kann morgen blockiert sein.
  • Infrastruktur-Belastung: Sie müssen einen Crawling-Scheduler, Fehlerbehebung, Datenpipelines und Überwachungssysteme separat aufbauen.

Kostenvergleich zwischen Eigenbau und Managed Services

Bei der Betrachtung der Kosten für das Sammeln von Daten von über 300.000 Anfragen pro Monat ergeben sich folgende Vergleiche.

Kriterium Eigenes Playwright-Setup Hashscraper-Abonnement
Entwicklergehalt (Senior-Level) 500-700 Millionen Won pro Monat Inklusive
Proxy/IP-Kosten 50-200 Millionen Won pro Monat Inklusive
Serverinfrastruktur (AWS usw.) 20-80 Millionen Won pro Monat Inklusive
Anti-Bot-Update-Anpassung 20-50 Millionen Won pro Monat (Arbeitszeit) Inklusive
Gesamtkosten pro Monat 590-1.030 Millionen Won 300 Millionen Won pro Monat~
Einrichtungszeit 1-3 Monate 1-2 Wochen
Bei IP-Blockierung Direkte Reaktion erforderlich Automatische Behandlung

Das Schreiben von Code und der stabile Betrieb in der Produktion sind unterschiedliche Herausforderungen. Wenn es sich um ein internes Tool oder ein kleines Projekt handelt, ist der Eigenbau mit Playwright die beste Option. Wenn jedoch langfristige stabile Datenerfassung für geschäftliche Zwecke erforderlich ist, sollten die Kosten für den Infrastrukturbetrieb und das Betriebsrisiko berücksichtigt werden.

Reservieren Sie eine kostenlose Beratung bei Hashscraper, um Ihre aktuellen Anforderungen zu besprechen und die beste Lösung zu erhalten.

Verwandte Anleitungen: Vergleich von Web-Crawling-Services | Vollständige Anleitung zu den Kosten des Crawling-Outsourcings


9. FAQ

F1. Ist das Crawling mit Playwright legal?

Das Sammeln öffentlicher Daten ist in den meisten Ländern legal. Die Missachtung von robots.txt-Anweisungen, das Umgehen von Anmeldeinformationen, die unbefugte Vervielfältigung urheberrechtlich geschützter Inhalte oder die Verursachung von Serverüberlastungen können jedoch rechtliche Probleme verursachen. In Südkorea wurde in einem Urteil von 2024 zu Coupang-Crawling der Verstoß gegen die Servicebedingungen und die Behinderung von Geschäftsaktivitäten diskutiert. Je nach Sammelzweck und -methode kann die rechtliche Beurteilung unterschiedlich ausfallen, daher wird empfohlen, bei kommerziellem Crawling eine rechtliche Überprüfung durchzuführen. Weitere Informationen finden Sie in der Vollständigen Anleitung zur Legalität des Crawlings.

F2. Sollte man Playwright, Selenium oder Puppeteer wählen?

Für ein neues Projekt im Jahr 2026 wird Playwright empfohlen. Es übertrifft in automatischem Warten, Unterstützung für mehrere Browser, paralleler Verarbeitung und schneller Ausführung. Selenium ist nützlich für die Kompatibilität mit bestehenden Legacy-Systemen und speziellen Browseranforderungen.

F3. Was ist der Unterschied zwischen Headless- und Headed-Modus?

headless=True führt den Browser im Hintergrund ohne sichtbares Fenster aus, während headless=False (Headed-Modus) tatsächlich ein sichtbares Browserfenster öffnet, was für das Debugging nützlich ist. Einige Anti-Bot-Systeme erkennen Headless-Browser leichter, daher kann es sinnvoll sein, den Headed-Modus zu verwenden, wenn eine Umgehung erforderlich ist.

F4. Kann man auch geschützte Websites mit Cloudflare crawlen?

Websites, die Cloudflare Turnstile oder Bot Management einsetzen, sind mit playwright-stealth allein schwer zu umgehen. Die Kombination von Wohn-IP-Proxies, Fingerprint-Tarnung und menschlicher Verhaltenssimulation kann zu instabilen Erfolgsraten führen. Das 2025 eingeführte AI Labyrinth von Cloudflare leitet Bots in ein Labyrinth aus Fake-Seiten, anstatt sie zu blockieren, was die Erkennung erschwert. Für groß angelegte Crawling-Projekte ist die Nutzung spezialisierter Dienste die realistischere Lösung.

F5. Wie kann man die Crawling-Geschwindigkeit mit Playwright erhöhen?

Die drei Schlüsselmethoden zur Verbesserung der Crawling-Geschwindigkeit sind: Blockieren unnötiger Ressourcen wie Bilder, Schriftarten und CSS über Netzwerkinterception, Ausführung mehrerer Seiten parallel mit BrowserContext und direktes Erfassen von API-Antworten anstelle von HTML-Parsing. Oft führen diese Methoden zu einer Geschwindigkeitssteigerung um das 3- bis 5-fache.

F6. Ist Playwright für groß angelegtes Crawling geeignet?

Die Ausführung von Playwright auf einem einzelnen Server eignet sich für Crawling im Bereich von mehreren Tausend bis Hunderttausend Anfragen pro Monat. Für größere Mengen sind jedoch verteilte Warteschlangen (Celery, RQ usw.), mehrere Server, Proxy-Pool-Management und Fehlerbehebungssysteme erforderlich. Wenn Sie mehr als 300.000 Anfragen pro Monat verarbeiten, ist es an der Zeit, über den Vergleich von Eigenbau und

Comments

Add Comment

Your email won't be published and will only be used for reply notifications.

Weiterlesen

Get notified of new posts

We'll email you when 해시스크래퍼 기술 블로그 publishes new content.

Your email will only be used for new post notifications.