Zum Hauptinhalt springen

Otto vs. Jina Inhaltsextraktion

Diese Seite dokumentiert einen praktischen Vergleich zwischen zwei Extraktionsansätzen:

  • Otto — Browser-DOM-Extraktion aus einer live Chrome-Sitzung über otto extract-content
  • Jina — Remote-Seitenabruf und -Parse über https://r.jina.ai/<url>

Der Vergleich verwendet drei repräsentative URLs und erfasst sowohl rohe Ausgaben als auch Leistungsmetriken.

Methodik

Für jede URL haben wir ausgeführt:

  • otto extract-content <url> --json
  • curl -s "https://r.jina.ai/<url>" -w '\nTIME_TOTAL:%{time_total}\n'

Dieser Test ließ bewusst einen API-Schlüssel weg und verwendet den anonymen r.jina.ai-Endpunkt. Jina-Antwortzeiten können zwischengespeichert werden, daher wird in diesem Vergleich nur die Dauer der ersten Anfrage verwendet.

Rohe Ausgabedateien wurden unter docs/guides/outputs/ gespeichert:

  • otto_<slug>.json
  • jina_<slug>.json

Dieser Vergleich konzentriert sich auf:

  • Extraktionsinhaltqualität
  • UI/Lärm-Entfernung
  • Kommentar/Thread-Erfassung
  • Anfragedauer
  • Seitenspezifische Abdeckung und Blockierverhalten

Jina-Ratenlimit-Kontext

Jina setzt Ratenlimits in zwei Dimensionen durch:

  • RPM — Anfragen pro Minute
  • TPM — Token pro Minute

Limits werden pro IP oder pro API-Schlüssel durchgesetzt, welcher Schwellenwert zuerst erreicht wird. Anonyme Anfragen werden nach IP verfolgt; authentifizierte Anfragen werden nach Schlüssel verfolgt.

Das Dashboard listet endpunktspezifische Limits auf wie:

  • Reader API (https://r.jina.ai): URL-zu-LLM-freundlicher-Text-Extraktion mit anonymen und authentifizierten Ratenlimits.
  • Search API (https://s.jina.ai): Websuche + Parse mit festen Token-Kosten.
  • Embedding API (https://api.jina.ai/v1/embeddings): Sowohl RPM als auch TPM gelten, mit Token-Verwendung basierend auf der Eingabegröße.
  • Reranker API (https://api.jina.ai/v1/rerank): Auch RPM + TPM.
  • Classifier APIs (/v1/train, /v1/classify): Anfrage- und Token-Budgets gelten mit separaten Few-Shot- und Zero-Shot-Limits.
  • Segmenter API (/v1/segment): Anfragelimitiert und Token-Verwendung wird nicht gezählt.
  • DeepSearch (https://deepsearch.jina.ai/v1/chat/completions): Konversationssuche mit separatem RPM-Budget.

Diese Limits sind relevant, weil Jina ein gehosteter Remote-Dienst ist, während Otto die Extraktion im eigenen Browser des Benutzers durchführt.

1. LinkedIn-Beitrag

URL: https://www.linkedin.com/posts/techstars_ny-tech-week-were-coming-for-you-whether-activity-7454971517832011776-fXua

Otto-Ergebnis

  • durationMs: 3009
  • contentLength: 7821
  • Ausgabe: bereinigte Markdown-Extraktion des Beitragsinhalts und sichtbarer Seitenelemente.
  • Anmerkungen: Otto erzeugte DOM-basiertes Markdown aus der live Browser-Seite.

Jina-Ergebnis

  • time_total: 4.638154
  • Ausgabe: ein gemischtes Gästeseiten-Ergebnis als Markdown gekennzeichnet, aber immer noch LinkedIn-Anmeldeflow und UI-Shell-Markup enthaltend.
  • Anmerkungen: Selbst ohne API-Schlüssel gab Jina einen LinkedIn-Gästeseiten-Wrapper zurück, anstatt eine saubere, destillierte Beitragsszusammenfassung.

Vergleich

AspektOttoJina
Anfragedauer3,01 s4,64 s
Inhaltslänge7.821 ZeichenGemischtes Gästeseiten-Markdown
AusgabetypBrowser-DOM-MarkdownRoher LinkedIn-Gästeseiten-Inhalt
KommentareN/AN/A
UI-LärmMinimalHoch (Anmeldung/Registrierung/Navigation/Footer)
Passt am besten zuAgenten-bereite InhaltsextraktionRoher Profil/Gästeseiten-Abruf

2. Reddit-Beitrag

URL: https://www.reddit.com/r/LocalLLaMA/comments/1t1lfhj/minimax_m27_awq4bit_on_2x_spark_vs_2x_rtx_6000/

Otto-Ergebnis

  • durationMs: 2313
  • contentLength: 27791
  • Ausgabe: Markdown-Extraktion des Reddit-Threads, einschließlich Beitragsinhalt und Kommentarstruktur.
  • Anmerkungen: Otto konnte die live DOM des Ziel-Reddit-Threads extrahieren.

Jina-Ergebnis

  • time_total: 1.815514
  • Ausgabe: eine Jina-Markdown-Fehlerseite, die anzeigt, dass Reddit 403 Forbidden zurückgegeben hat und die Anfrage blockiert wurde.
  • Anmerkungen: Jina konnte den Reddit-Thread-Inhalt anonym nicht abrufen.

Vergleich

AspektOttoJina
Anfragedauer2,31 s1,82 s
Inhaltslänge27.791 ZeichenBlockierte Fehlerseite
AusgabetypMarkdown-ExtraktionBlockierte/Eingeschränkte Seiten-Hinweis
KommentareExtrahierte Beitrags-KommentareKein brauchbarer Inhalt
UI-LärmNiedrigHoch (Blockierhinweis)
Passt am besten zuBrowser-DOM-Extraktion für Community-InhalteNicht zuverlässig für anonymes Reddit-Scraping

3. Blog-Beitrag

URL: https://dennishodgson.blogspot.com/2025/05/photographic-highlights-202425.html

Otto-Ergebnis

  • durationMs: 3017
  • contentLength: 39427
  • Ausgabe: bereinigte Markdown-Extraktion des Blogartikel-Inhalts.
  • Anmerkungen: Otto entfernte Seiten-Chrome und extrahierte den Artikel aus der live DOM.

Jina-Ergebnis

  • time_total: 5.977519
  • Ausgabe: tatsächlicher Markdown-Inhalt für den Artikel, einschließlich Text und Bildlinks.
  • Anmerkungen: Jina war auf dieser Veröffentlichungsseite erfolgreich und gab einen Markdown-fähigen Artikel zurück.

Vergleich

AspektOttoJina
Anfragedauer3,02 s5,98 s
Inhaltslänge39.427 ZeichenMarkdown-Artikelinhalt
AusgabetypBrowser-DOM-MarkdownMarkdown-fähiger Seitenextrakt
KommentareN/AN/A
UI-LärmMinimalNiedrig/Mittel (enthält immer noch extrahierten Navigationstext)
Passt am besten zuArtikel-Extraktion aus live Browser-ZustandRohe öffentliche Blog-Extraktion

Gesamtergebnisse

  • Otto ist stärker für agentenbereite Extraktion, wenn die Seite bereits im Browser geladen ist. Es liefert konsistent bereinigtes Markdown aus der live DOM.
  • Jina kann für öffentliche Blogseiten funktionieren, ist aber weniger zuverlässig für Seiten mit Zugriffskontrollen oder Anti-Scraping-Schutz.
  • Reddit insbesondere schlug anonym über Jina mit einer 403 Forbidden-Blockierseite fehl.
  • LinkedIn über Jina gab immer noch Gästeseiten-Wrapper-Inhalt zurück, kein destilliertes Beitragspayload.
  • Otto's Extraktionszeiten lagen bei 2,3–3,0 Sekunden in dieser Menge, während Jinas Erstanfragezeiten zwischen 1,8 und 6,0 Sekunden lagen.
  • Nur die anfängliche Jina-Anfragezeitmessung ist hier sinnvoll. Jina puffert Ergebnisse, sodass wiederholte Aufrufe künstlich schnell erscheinen können.

Beweisdateien

Rohe Erfassungsdateien sind unter docs/guides/outputs/ verfügbar:

  • otto_posts_techstars_ny-tech-week-were-coming-for-you-whether-activity-7454971517832011776-fXua.json
  • jina_posts_techstars_ny-tech-week-were-coming-for-you-whether-activity-7454971517832011776-fXua.json
  • otto_r_LocalLLaMA_comments_1t1lfhj_minimax_m27_awq4bit_on_2x_spark_vs_2x_rtx_6000.json
  • jina_r_LocalLLaMA_comments_1t1lfhj_minimax_m27_awq4bit_on_2x_spark_vs_2x_rtx_6000.json
  • otto_2025_05_photographic-highlights-202425.html.json
  • jina_2025_05_photographic-highlights-202425.html.json

Diese Dateien bewahren die genauen anfänglichen Tool-Ausgaben, Zeitmessungen und jede seitenspezifischen Lärm, der während des Vergleichs beobachtet wurde.