Ecrire un programme qui lit l'historique de Chrome
Bonjour,
Imaginons un navigateur chrome dans lequel est ouverte une URL.
Dans un programme C++ entièrement à part, je voudrais savoir quelle est cette URL. J'imagine que c'est peut-être stocké dans le fichier d'historique des pages visitées. Mais je ne sais pas où le trouver.
Merci
Henri
Windows / Chrome 110.0.0.0
- Ecrire un programme qui lit l'historique de Chrome
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Historique presse-papier android - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Historique de mes trajets - Guide
- Ecrire en gras sur whatsapp - Guide
2 réponses
Bonjour,
Pourquoi ne pas simplement directement ouvrir chrome puis l'historique (ctrl+H) ?
Voir aussi cette discussion : chrome stocke l'historique dans une base sqlite (fichier ~/.config/chromium/Default/History sous Linux, où ~ désigne le dossier personnel de l'utilisateur). Pas besoin de C++, un simple client sqlite suffit.
Cependant, sqlite ne peut consulter cette base que si elle n'est pas déjà en cours d'utilisation (e.g. par chrome).
Exemple sous Linux :
- Installation de sqlite
sudo apt update sudo apt install sqlite3
- Utilisation
sqlite3 ~/.config/chromium/Default/History
- Requête
SELECT urls.url, urls.title FROM urls;
- Résultat (si chrome/chromium lancé)
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
sqlite> SELECT urls.url, urls.title FROM urls;
Parse error: database is locked (5)
- Résultat (si chrome/chromium n'est pas lancé)
SQLite version 3.40.1 2022-12-28 14:03:47
Enter ".help" for usage hints.
...
https://forums.commentcamarche.net/forum/affich-37746779-help-mee-error-ninja#newanswer|Help mee error ninja
https://forums.commentcamarche.net/forum/affich-37745249-librairie-math-en-c|Librairie math en c
...
Notes :
- Selon ce que tu as l'intention de faire (par exemple du contrôle parental) il y a des outils spécifiquement prévus pour.
- Ce que j'ai indiqué ne permet que d'examiner l'historique de chrome, mais si un autre navigateur (e.g., firefox) est installé, tu ne verras pas tous les sites visités. Si cela te suffit, il existe probablement des librairies sqlite dans le langage de programmation de ton choix.
- On parle ici de données personnelles : l'utilisateur dont tu examines les données doit au préalable donner son accord, sans quoi tu t'exposes à des sanctions pénales.
Bonne chance
Merci, J'ai l'impression que si je copie ce fichier History et je travaille sur la copie alors je contourne ce problème de "database is locked". En tous cas, merci pour ton aide.
En effet, je me demande juste si ça la copie se passe bien si la base est modifiée pendant la fraction de seconde où la base est copiée, mais mis à part ça, ça doit marcher.
Est-ce que tu as toutes les réponses à ta question initiale ? Si oui peux-tu basculer le sujet en résolu ; et sinon, peux-tu nous dire ce qu'il reste à aborder ?
Bonne chance
Voici une manière d'accéder de manière concurrente au fichier ~/.config/chromium/Default/History tirée de cette discussion (note qu'il y a quelques limitations) :
sqlite3 "file:///home/mando/.config/chromium/Default/History?immutable=1"
Si tu penses qu'on a fait le tour, merci de basculer le sujet en résolu.
Bonne chance
Lancer :
sqlite3 -readonly ~/.config/chromium/Default/History
... est l'approche naturelle, mais de mon côté, elle conduit au malgré tout au message :
Parse error: database is locked (5)
La discussion que je pointe dans #5 discute plus en détail de ce problème.
Bonne chance