Dinoer

Respectful navigation

Visiting a site spends resources that belong to someone else. What Dinoer counts, how it spaces its requests, and how it presents itself.

An agent that crosses a public site uses resources that belong to someone else. By default, Dinoer waits 800 ms between two actions and stops at 10 pages and 30 actions per call; these limits are set in the navigation section of dinoer.conf. Every answer carries a count of what the call spent.

What the counter contains

Every call returns a respect block, at the root of the JSON and inside boussole. Real output, from a run against https://example.com:

"respect": {"pages_visitees": 0, "actions_executees": 1,
            "duree_totale_ms": 1981, "indice_agressivite": 0.0}

pages_visitees counts naviguer actions only: the initial URL of a call is not one. A call that loads a page and reads it reports 0; add one for the first load. indice_agressivite is the share of actions that can change the page (clicks, fills, evaluer scripts, typing a code) among all the actions run; it appears once at least one action has run.

At campaign scale

campagne.py pauses before each SearXNG query as well as before each page it fetches, for a random time between delai_min_secondes and delai_max_secondes (4.5 and 8.5 seconds by default). The pause before queries was added after a campaign on 12 August 2026 sent its discovery queries back to back: the search engines behind the SearXNG instance suspended it for exceeding their rate limits.

A campaign does not fetch again a page it collected less than revisite_apres_jours days ago (30 by default), and takes at most three pages from the same site (max_pages_par_hostname).

How it presents itself

The light collection sends a user agent that names Dinoer and links to its repository, Mozilla/5.0 (compatible; Dinoer/1.0; +https://github.com/RonanDavalan/dinoer), and reads robots.txt under that same name before fetching. The browser keeps the default user agent of headless Chromium, which states that it is headless.

--stealth hides these marks. It is off unless you turn it on, and you answer for the traffic you send. Some sites refuse an agent that announces itself where they would have served an ordinary browser: that is the price of this default.