Accéder à l'historique par programme

lepirou Messages postés 1 Date d'inscription lundi 28 octobre 2024 Statut Membre Dernière intervention 28 octobre 2024 - 28 oct. 2024 à 17:33
luckydu43 Messages postés 3820 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 28 octobre 2024 - 28 oct. 2024 à 18:29

Bonjour,

je veux accéder à l'historique d'un navigateur par un programme fait en js ou pascal

A voir également:

1 réponse

luckydu43 Messages postés 3820 Date d'inscription vendredi 9 janvier 2015 Statut Membre Dernière intervention 28 octobre 2024 938
Modifié le 28 oct. 2024 à 18:34

Bonjour

La question est étrange mais mettons.

En JS t'es vite limité sans usage d'une extension avec l'autorisation de l'utilisateur pour parcourir l'historique.

Voici une page .html que tu lances dans un onglet contenant de l'historique, il va bêtement pouvoir aller à la page suivante ou précédente s'il y en a une.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Lire historique</title>
</head>
<body>
	<h1>Il y a <span id="nb"></span> pages dans l'historique de cet onglet.</h1>
    
	<button onclick="precedent()">Précedant</button>
    <button onclick="suivant()">Suivant</button>
    
	<p id="erreur"></p>
    <script>
        function precedent() {
            if (window.history.length > 1) {
                window.history.back();
            } else {
                document.getElementById('erreur').textContent = "Aucun historique dans cet onglet";
            }
        }

        function suivant() {
            if (window.history.length > 1) {
                window.history.forward();
            } else {
                document.getElementById('erreur').textContent = "Aucun historique dans cet onglet";
            }
        }
		document.getElementById('nb').textContent = window.history.length;
    </script>
</body>
</html>

Les scripts de tracking publicitaires jouent plutôt sur la lecture des cookies, le stockage local et le fingerprinting.

Côté Pascal il s'agit plutôt de lire le contenu de la base de données locale de l'historique, pour Chrome il s'agit d'une base SQLite. Donc le script ressemblera à un SELECT après création d'une connexion, un peu comme ceci :

program parcourirBddHistoriqueChrome;

uses
  sqlite3;

var
  bdd: TSQLite3Database;
  statement: TSQLite3Statement;
  indexHistorique: Integer;

begin
  bdd := TSQLite3Database.Create('C:\Users\VOTRE_NOM\AppData\Local\Google\Chrome\User Data\Default\History');
  bdd.Open;
  statement := bdd.Prepare('SELECT url, title FROM urls');
  indexHistorique := statement.Step;

  while historique = SQLITE_ROW do
  begin
    WriteLn('URL de la page = ', statement.ColumnText(0));
    WriteLn('Titre de la page = ', statement.ColumnText(1));
    indexHistorique := statement.Step;
  end;

  statement.Free;
  bdd.Free;
end.

Il va de soi que ce programme ne marche qu'en ayant accès physiquement au dossier AppData donc hors de l'espace permis au navigateur en lecture.


0