CommunityRecherche & Datenanalysegithub.com

jamditis/web-scraping

Web Scraping mit Anti-Bot-Umgehung, Content-Extraktion, undokumentierten APIs und Poison-Pill-Erkennung. Verwenden Sie dies, wenn Sie Inhalte von Websites extrahieren, Bezahlschranken umgehen, Scraping-Kaskaden implementieren oder soziale Medien verarbeiten. Deckt Muster mit requests, trafilatura, Playwright (inkl. Stealth-Modus), yt-dlp und instaloader ab.

Was ist web-scraping?

Das Skill `jamditis/web-scraping` ist ein leistungsstarkes Werkzeug für Entwickler, die komplexe Web-Scraping-Aufgaben bewältigen müssen. Es bietet eine umfassende Lösung, die nicht nur das Extrahieren von Inhalten von Websites, sondern auch das Umgehen von Anti-Bot-Mechanismen, den Umgang mit Bezahlschranken und die Implementierung von Scraping-Kaskaden umfasst. Das Skill unterstützt verschiedene Plattformen wie Claude Code, Cursor und Codex und vereint mehrere Techniken: `requests` für einfache HTTP-Anfragen, `trafilatura` für die strukturierte Textextraktion, `Playwright` mit Stealth-Modus für die Automatisierung moderner Webseiten sowie spezialisierte Bibliotheken wie `yt-dlp` und `instaloader` für Video- und Social-Media-Inhalte. Ein besonderes Merkmal ist die integrierte „Poison-Pill“-Erkennung, die hilft, Fallen und irreführende Daten auf Websites zu identifizieren. Entwickler profitieren von einer detaillierten Dokumentation, die Best Practices für Header, Session-Management und Proxy-Konfiguration bereitstellt, um robuste und ethisch vertretbare Scraping-Lösungen zu erstellen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jamditis/claude-skills-journalism/tree/main/skills/web-scraping

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht web-scraping?

Web Scraping mit Anti-Bot-Umgehung, Content-Extraktion, undokumentierten APIs und Poison-Pill-Erkennung. Verwenden Sie dies, wenn Sie Inhalte von Websites extrahieren, Bezahlschranken umgehen, Scraping-Kaskaden implementieren oder soziale Medien verarbeiten. Deckt Muster mit requests, trafilatura, Playwright (inkl. Stealth-Modus), yt-dlp und instaloader ab.

Warum dieses Skill?

  • Anti-Bot-Umgehung: Kopfzeilen, rotierende User-Agents, Proxy-Unterstützung und verhaltensorientierte Muster.
  • Strukturierte Extraktion: trafilatura-Extraktion mit automatischer Bereinigung.
  • Dynamic Content: Playwright mit Undetected-Chromedriver / Stealth-Modi.
  • Medien: Video-Download (yt-dlp) & Instagram-Profil-/Hashtag-Daten (instaloader).
  • Undokumentierte APIs: Reverse Engineering von XHR/Fetch-Aufrufen.
  • Poison Pill Detection: Erkennung von gesperrten Inhalten (z.B. captcha / banned in Antworten).

Unterstützte Tools & Bibliotheken

BibliothekZweckHinweis
requestsHTTP-Aufrufe mit SessionCookies & Kopfzeilen-Header
BeautifulSoupHTML-ParsingZusammen mit lxml-Parser
trafilaturaSaubere Text-ExtraktionBereinigung von HTML-Müll
playwrightBrowser-AutomationKopfzeilen-lose & Stealth
yt-dlpVideo-DownloadPlaylists, Untertitel
instaloaderInstagram-ScrapingProfile, Hashtags, Stories

Schnellstart

Basis-Scraping (statische Seiten)

import requests
from bs4 import BeautifulSoup

session = requests.Session()
session.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
})

response = session.get("https://example.com")
soup = BeautifulSoup(response.content, "html.parser")
print(soup.title.text)

Spielereien mit Playwright (Stealth)

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    )
    page = context.new_page()
    page.goto("https://example.com")
    print(page.title())
    browser.close()

Poison Pill Detection

def has_poison_pill(response_text: str) -> bool:
    indicators = ["captcha", "access denied", "rate limit", "suspicious activity"]
    return any(indicator in response_text.lower() for indicator in indicators)

Undokumentierte APIs

Nutzen Sie den Netzwerk-Tab von DevTools, um API-Endpunkte zu finden, und führen Sie direkte Fetch-Aufrufe durch:

import requests

url = "https://api.example.com/v1/data?param=value"
headers = {
    "Authorization": "Bearer <token>",
    "X-CSRF-Token": "..."
}
response = requests.get(url, headers=headers)
print(response.json())

Scraping-Kaskaden

  1. Erster Versuch: requests + trafilatura (schnell, leichtgewichtig).
  2. Zweiter Versuch: playwright (wenn Anti-Bot erkannt wird).
  3. Letzter Ausweg: Undokumentierte API oder externer Dienst.

Paywalls

  • Verwenden Sie einen anderen User-Agent oder einen Referer.
  • Nutzen Sie Archive.is / Google Cache.
  • Verwenden Sie 12ft.io oder andere Paywall-Bypass-Dienste.

Soziale Medien

Instagram (instaloader)

instaloader profile <profilename>

YouTube / Videos (yt-dlp)

yt-dlp "https://www.youtube.com/watch?v=<id>"

Fehlerbehebung

  • Blockierte Anforderungen: Fügen Sie eine Verzögerung time.sleep() hinzu.
  • Captcha: Nutzen Sie Playwright-Stealth oder proxies.
  • Ratenlimit: Wechseln Sie IP-Adressen / rotieren Sie User-Agents.

Hinweis: Respektieren Sie stets die robots.txt und die Nutzungsbedingungen der Website. Verwenden Sie diese Techniken nur, wenn es rechtlich und ethisch vertretbar ist.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Verwandte Skills