


Einen Extraktor für den Hauptinhalt von Webseiten bauen und verlorene Inhalte finden
Zum Bauen oder Reparieren eines Extraktors für den Haupttext von Webseiten in Browser, Server, CLI oder Edge. Die KI hält die Reihenfolge der Bereinigung ein, protokolliert jede Entfernung, blockiert Skript-Einschleusung und belegt Korrekturen mit einem zuerst fehlschlagenden Test.
Diese KI-Regeln verwenden
## Den Extraktor in jeder unterstützten Umgebung gleich arbeiten lassen
Richte den Extraktor an einer stabilen Dokumentschnittstelle statt an einer bestimmten Browserimplementierung aus.
Führe alle unterstützten Umgebungen und ihre Einschränkungen auf, bevor du das gemeinsame Analyseverhalten änderst.
- Browserausgaben dürfen das native Dokumentmodell verwenden.
- Serverausgaben dürfen Dokumente aus unterschiedlichen DOM-Implementierungen annehmen und eine asynchrone API bereitstellen.
- Befehlszeilenausgaben müssen dieselbe Extraktionssemantik wahren und sowohl maschinenlesbare als auch textorientierte Betriebsarten anbieten.
- Randlaufzeitumgebungen können die am stärksten eingeschränkte Dokumentimplementierung besitzen und sollten deshalb die untere Kompatibilitätsgrenze bestimmen.
- Paketeinstiegspunkte müssen unabhängig vom jeweiligen Modulformat dasselbe öffentliche Verhalten bereitstellen.
Halte Umgebungsadapter schlank.
Ordne Analyse, Bewertung, Vereinheitlichung, Bereinigung und elementspezifisches Verhalten gemeinsamen Schichten zu, sofern nicht eine Laufzeitbeschränkung eine ausdrückliche Ausnahme erfordert.
## Die Reihenfolge der Bereinigungsschritte halten und nicht für eine Website ändern
Behandle die Extraktionsverarbeitung als geordneten Algorithmus und nicht als Sammlung beliebig austauschbarer Bereinigungsfunktionen.
Jeder Schritt kann Voraussetzungen schaffen, die spätere Schritte benötigen.
Verwende standardmäßig diese Reihenfolge:
1. Glätte gekapselte Dokumentbäume.
2. Löse gestreamte oder verzögert bereitgestellte Inhalte auf.
3. Ermittle den Hauptinhalt automatisch oder über einen ausdrücklichen Selektor.
4. Vereinheitliche Strukturen, die Entfernungsregeln andernfalls ausblenden oder verwerfen könnten.
5. Wandle erkannte Hinweisblöcke in eine stabile semantische Darstellung um.
6. Entferne zu kleine Medien und ausgeblendete Elemente.
7. Entferne niedrig bewertete Blöcke.
8. Wende Selektoren mit vollständiger oder teilweiser Übereinstimmung auf störende Elemente an.
9. Entferne wiederkehrende Standardtexte und andere Inhaltsmuster.
10. Vereinheitliche das verbleibende Dokument.
11. Löse relative Verweise und Ressourcenorte auf.
Dokumentiere, warum ein Schritt vor einem anderen ausgeführt werden muss, wenn die Abhängigkeit nicht offensichtlich ist.
Ordne gemeinsame Schritte nicht zur Korrektur einer einzelnen Website neu, bevor ein gezielter Test belegt, dass die neue Reihenfolge alle erforderlichen Zwischendarstellungen erhält.
## Mit dem Entfernungsprotokoll finden, wo Inhalt verloren ging
Stelle einen Diagnosemodus bereit, der das gewählte Inhaltswurzelelement und jede Entfernung mit Schritt, Selektor, Grund und repräsentativem Text meldet.
Der Diagnosemodus darf Diagnoseattribute erhalten und Strukturglättungen überspringen, die Belege beseitigen würden.
Wenn erwarteter Inhalt verschwindet:
1. Suche im Entfernungsprotokoll nach dem fehlenden Inhalt.
2. Deaktiviere jeweils einen Schritt, um den ersten Schritt zu ermitteln, der den Verlust verursacht.
3. Unterscheide bei Selektorproblemen zwischen Selektoren mit vollständiger und teilweiser Übereinstimmung.
4. Umgehe die automatische Inhaltserkennung mit einem ausdrücklichen Selektor, wenn das falsche Wurzelelement gewählt wurde.
5. Bestätige, dass geschützte Codebereiche und vorformatierte Bereiche von der allgemeinen Entfernung ausgenommen sind.
6. Aktiviere alle nicht betroffenen Schritte erneut, bevor du die Korrektur annimmst.
Bevorzuge Belege vom frühesten fehlerhaften Übergang gegenüber Vermutungen aus dem fertigen Dokument.
Deaktiviere umfangreiche Bereinigungen nicht dauerhaft, wenn sich der Fehler durch einen begrenzten Selektor, eine Reihenfolgeänderung oder eine Elementregel beheben lässt.
## Seiten-HTML als feindlich behandeln und Skript-Einschleusung blockieren
Analysiere Markup mit einer sicheren Dokumenterzeugungshilfe, die weder Skripte ausführt noch Ressourcen lädt.
Weise nicht vertrauenswürdiges Markup niemals direkt einer Browser-Analysesenke zu.
- Entferne skriptausführende URL-Schemata aus Verweis- und Medienattributen.
- Entferne eingebettete Dokumentquellen aus Rahmen.
- Entferne Ereignisbehandlungsattribute.
- Maskiere jeden aus der Seite stammenden Wert, bevor du ihn in erzeugtes Markup einsetzt.
- Bevorzuge Knotenerzeugung und Attributzuweisung, wenn dadurch die Maskierungsanforderungen eindeutig werden.
- Bereinige das fertige Ergebnis als zusätzliche Absicherung, nicht als Ersatz für eine sichere Erzeugung.
Gehe davon aus, dass angreifergesteuerte Anführungszeichen in Medien-URLs, Alternativtexten, Metadatenbildern und Beschreibungen ein Attribut vorzeitig beenden und ein weiteres einschleusen können.
Jeder Extraktor, der Markup erzeugt, muss einen Angriffstest zur Attributeinschleusung besitzen.
## Jede Korrektur mit einer kleinen Testseite belegen, die zuerst fehlschlägt
Erstelle bei Extraktionsfehlern das kleinste Dokumentprüfmuster, das den Fehler noch reproduziert, und verknüpfe es mit der genauen erwarteten Ausgabe.
Halte Prüfdokumente reproduzierbar und frei von personenbezogenen oder quellenspezifischen Kennzeichen.
- Ersetze echte Namen, E-Mail-Adressen, URLs, Kontokennungen und wiedererkennbare Texte durch allgemeine Platzhalter.
- Nimm nur die Struktur auf, die zum Auslösen des fehlerhaften Verarbeitungsschritts erforderlich ist.
- Füge bei Sicherheitskorrekturen ein vergiftetes Attribut oder eine gleichwertige Angriffsnutzlast ein.
- Bestätige vor der Korrektur, dass das Prüfdokument fehlschlägt.
- Nimm die kleinste Verhaltensänderung vor, durch die das Prüfdokument erfolgreich wird.
- Führe die gezielte Prüfung und die gemeinsame Extraktionsprüfsammlung in allen unterstützten Umgebungen aus.
Ein Prüfdokument, das vor und nach der Implementierungsänderung erfolgreich ist, belegt keine behobene Regression.
Falls ein Zurücknehmen der Korrektur unpraktisch ist, gestalte das erwartete Ergebnis oder einen gesteuerten Schalter so, dass das frühere Verhalten weiterhin nachweislich fehlschlägt.
## DOM- und Paketierungsunterschiede in jeder Umgebung testen
Prüfe das Randverhalten unterschiedlicher Dokumentimplementierungen und Paketformate, selbst wenn der gemeinsame Algorithmus unverändert bleibt.
- Wandle dynamische Elementsammlungen in statische Felder um, bevor du das Dokument veränderst.
- Prüfe, ob benannte Hilfsfunktionen erreichbar bleiben, wenn ein Paket nur einen Standardexport bereitstellt.
- Prüfe asynchrone Serveradapter getrennt von synchronen Browseradaptern.
- Prüfe das Verhalten der Randlaufzeitumgebung über ihre tatsächliche Anfrageschnittstelle, statt Browsergleichheit anzunehmen.
- Prüfe die Text- und Strukturbetriebsart der Befehlszeile mit derselben Sammlung von Prüfdokumenten.
- Begrenze umgebungsspezifische Umgehungslösungen auf Adapter und decke jede davon mit einer gezielten Kompatibilitätsprüfung ab.
Wenn eine umgebungsspezifische Korrektur die gemeinsame Ausgabe ändert, behandle sie als umgebungsübergreifende Verhaltensänderung und prüfe jeden unterstützten Adapter.
Lass nicht zu, dass eine Paketierungsumgehung den öffentlichen Vertrag des Extraktors stillschweigend neu festlegt.
