Respektvolle Navigation
Ein Agent, der einen öffentlichen Ort passiert, verbraucht Ressourcen, die jemand anderem gehören. Dinoer protokolliert seine eigenen Bewegungen und meldet diese – und eine Kampagne plant ihre Anfragen bewusst, sowohl im Bereich der Suche als auch im Bereich der Datenerfassung.
Ein Programm, das eine öffentliche Website durchsucht, verbraucht Ressourcen, die jemand anderem gehören. Dinoer geht von diesem Prinzip aus, hat den ursprünglichen Browser-Kern übernommen und unverändert belassen und darauf eine Forschungsplattform aufgebaut.
Es bewegt sich in dem Tempo, das Sie vorgeben, nicht mit der maximalen Geschwindigkeit, die die Maschine erlaubt. Es präsentiert sich so, wie es ist, ohne die Identität eines menschlichen Browsers anzunehmen. Es zählt seine eigenen Seiten und Aktionen und gibt diese Anzahl in jeder Antwort zurück – Sie wissen immer, was es für das Ziel gekostet hat.
Diese Messung ist keine Leine: Sie bleiben frei, sie festzulegen. Es ist ein ehrlicher Zähler, der vom Tool selbst geführt wird, auf seiner eigenen Basis.
Was der Zähler tatsächlich enthält
Jeder Durchlauf gibt einen respect-Block zurück, am Anfang der JSON-Datei und innerhalb des Abschnitts – die tatsächliche Ausgabe, von einem Durchlauf gegen https://example.com:
"respect": {"pages_visitees": 0, "actions_executees": 1,
"duree_totale_ms": 1981, "indice_agressivite": 0.0}
Ein Feld verdient eine Warnung, weil sein Name mehr verspricht, als es tatsächlich zählt.
pages_visitees zählt nur naviguer Aktionen – die anfängliche URL einer
Ausführung gehört nicht dazu. Eine Ausführung, die eine Seite lädt und liest, meldet daher 0,
was korrekt ist, aber falsch aussieht. Wenn Sie den Gesamtbetrag einschließlich des ersten
Ladevorgangs wünschen, addieren Sie eins.
Wir würden lieber diesen Satz schreiben, als Sie ihn von einer Quelle entdecken lassen, der Sie vertraut haben.
Die gleiche Doktrin, aber im Kampfeinsatz
Die Funktion shot.py trennt ihre eigenen Aktionen voneinander. campagne.py hat eine zweite, unabhängige Aufgabe: die SearXNG-Abfragen selbst zu trennen, nicht nur die darauf folgenden Seitenabrufe. Eine echte Kampagne fand diese Lücke auf die harte Tour – eine Abfolge von Such- und Sammelabfragen führte dazu, dass die Upstream-Engines der SearXNG-Instanz sie aufgrund von Ratenbegrenzungen sperrten. Ein Aufruf von time.sleep() wird jetzt an jeder Stelle ausgeführt, wo ein rechercher() Aufruf erfolgt, nicht nur zwischen den gespeicherten Seitenabrufen.
Frische ist die andere Hälfte derselben Doktrin: Eine Suchmaschine wird eine Seite nicht erneut indexieren, innerhalb eines konfigurierbaren Zeitfensters (standardmäßig 30 Tage), nur weil ein späteres Ergebnis zufällig darauf verweist.
Angegebene Identität
Dinoer gibt standardmäßig nicht vor, ein menschlicher Browser zu sein. Das ist eine bewusste Position, keine technische Einschränkung – und das hat seinen Preis: Einige Seiten verweigern den Zugriff einem Agenten, der sich identifiziert, während sie einen Browser akzeptieren würden, der nichts sagt.
Dieser Preis ist von uns zu zahlen, nicht von Ihnen herauszufinden. Eine --stealth Option existiert
für die Fälle, in denen Sie sich anders entscheiden; sie ist optional und liegt in Ihrer Entscheidung,
weil Sie für den Traffic verantwortlich sind, den Sie senden.