Injection de favoris : pre-remplir dans le navigateur
Comment pre-remplir les favoris du navigateur de maniere programmatique pour des identites de navigateur completes et realistes dans les workflows automatises.
Vous préférez la doc produit maintenue ?
Cet article a une page équivalente dans le centre de documentation. Utilisez les docs pour le flux canonique, les flags à jour et la référence durable.
Introduction
Un vrai navigateur porte un historique. Il contient des favoris enregistres sur des semaines et des mois, organises dans des dossiers, refletant les interets et les habitudes de l'utilisateur. Lorsque vous lancez une instance de navigateur neuve pour l'automatisation ou la recherche en confidentialite, la barre de favoris vide est l'un des nombreux signaux qui la distinguent d'un navigateur avec un historique d'utilisation authentique. Les favoris font partie de la couche d'identite plus large qui donne a une session de navigateur un aspect vecu plutot que fraichement cree.
BotBrowser fournit le drapeau --bot-bookmarks pour pre-remplir la barre de favoris lors du lancement d'une instance de navigateur. Cela vous permet de creer des sessions qui incluent des donnees de favoris realistes des le premier chargement de page. Combine avec d'autres drapeaux d'identite comme --bot-cookies et --bot-inject-random-history, les favoris contribuent a une identite de navigateur complete et coherente a tous les niveaux.
Impact sur la confidentialite : pourquoi les favoris comptent
Les systemes de pistage collectent de nombreux signaux pour construire un profil du navigateur avec lequel ils interagissent. Bien que les cookies et les empreintes soient les plus couramment discutes, les signaux comportementaux et d'etat jouent egalement un role. La presence ou l'absence de favoris, le nombre d'entrees dans l'historique de navigation et l'etat de la barre de favoris contribuent tous a l'image globale d'une session de navigateur.
Pour les chercheurs en confidentialite, controler l'etat des favoris est important pour des experiences reproductibles. Si vous testez si un systeme de pistage se comporte differemment pour les nouveaux visiteurs par rapport aux visiteurs de retour, vous devez controler chaque aspect de l'etat du navigateur, y compris les favoris. Pour la gestion multi-comptes, chaque identite beneficie d'un ensemble unique de favoris aligne avec le reste de son profil : un profil en langue allemande devrait avoir des favoris allemands, un profil de developpeur devrait avoir des favoris techniques, etc.
Les barres de favoris vides sont aussi un probleme pratique. Certains workflows necessitent d'interagir avec des elements d'interface lies aux favoris ou de tester comment les sites web repondent a l'API chrome.bookmarks. Le pre-remplissage des favoris fournit un point de depart realiste pour ces scenarios.
Contexte technique
Comment Chromium stocke les favoris
Chromium stocke les favoris dans un fichier JSON appele Bookmarks dans le repertoire de donnees utilisateur, specifiquement sous le dossier de profil (par ex. Default/Bookmarks). Ce fichier contient une structure arborescente avec deux noeuds racine : bookmark_bar (visible sur la barre de favoris) et other (le dossier "Autres favoris").
Chaque entree de favori possede ces proprietes :
- name/title : Le texte d'affichage montre dans la barre de favoris ou le gestionnaire
- url : L'URL cible pour les favoris de type URL
- type : Soit
urlpour un favori, soitfolderpour un dossier contenant des enfants - children : Un tableau de favoris et dossiers imbriques (pour les entrees de type dossier)
- date_added : Un horodatage representant la date de creation du favori
Lorsque le navigateur se lance, il lit ce fichier et remplit la barre de favoris et le gestionnaire de favoris. Les extensions et le JavaScript s'executant dans des contextes privilegies peuvent interroger les favoris via l'API chrome.bookmarks.
Visibilite des favoris
Les favoris apparaissent a plusieurs endroits dans le navigateur :
- Barre de favoris : L'emplacement le plus visible, affiche sous la barre d'adresse lorsqu'elle est activee
- Gestionnaire de favoris : Accessible via
chrome://bookmarks - Page Nouvel onglet : Certaines configurations affichent les sites frequemment mis en favoris
- Suggestions de la barre d'adresse : La barre d'adresse peut suggerer des URL mises en favoris lors de la saisie
Le pre-remplissage des favoris via --bot-bookmarks garantit qu'ils apparaissent dans tous ces emplacements de maniere coherente.
Approches courantes et leurs limitations
Modification manuelle du fichier de favoris
Vous pouvez creer un repertoire de donnees utilisateur, creer ou modifier manuellement le fichier JSON Bookmarks, puis lancer le navigateur avec ce repertoire. Cela fonctionne mais presente plusieurs inconvenients :
- Le format du fichier
Bookmarksinclut des champs de metadonnees (GUIDs, horodatages date_added au format interne de Chromium) qui doivent etre corrects - Vous devez gerer les repertoires de donnees utilisateur explicitement, en suivant quel repertoire appartient a quelle identite
- Il n'y a pas de separation nette entre les donnees de favoris et les autres etats persistes dans le repertoire
Utilisation de l'API chrome.bookmarks
L'API chrome.bookmarks permet de creer des favoris de maniere programmatique, mais elle n'est disponible que pour les extensions de navigateur, pas pour le JavaScript de page ordinaire ou les frameworks d'automatisation. Cela signifie que vous devriez installer une extension pour gerer les favoris, ce qui ajoute de la complexite et introduit un signal detectable (l'extension elle-meme).
Approches au niveau du framework
Ni Playwright ni Puppeteer ne fournissent d'API native pour les favoris. La seule facon integree de gerer les favoris via ces frameworks est de naviguer vers chrome://bookmarks et d'interagir avec l'interface, ce qui est lent et fragile.
L'approche de BotBrowser
BotBrowser gere le pre-remplissage des favoris au niveau du moteur via le drapeau --bot-bookmarks. Cette approche evite les limitations des alternatives decrites ci-dessus.
Remplissage au niveau du moteur
Lorsque --bot-bookmarks est passe au lancement, BotBrowser remplit le magasin de favoris pendant l'initialisation du navigateur, avant tout chargement de page et avant la creation de tout contexte de navigateur. Les favoris sont immediatement disponibles dans la barre de favoris, le gestionnaire de favoris et les suggestions de la barre d'adresse.
Format JSON
Le drapeau --bot-bookmarks accepte une chaine JSON decrivant la structure des favoris :
--bot-bookmarks='[{"title":"Google","type":"url","url":"https://www.google.com"},{"title":"News","type":"folder","children":[{"title":"BBC","type":"url","url":"https://www.bbc.com"},{"title":"Reuters","type":"url","url":"https://www.reuters.com"}]}]'
La structure prend en charge :
- Favoris URL : Objets avec
title,type: "url"eturl - Dossiers : Objets avec
title,type: "folder"et un tableauchildrencontenant des favoris et dossiers imbriques - Imbrication illimitee : Les dossiers peuvent contenir d'autres dossiers a n'importe quelle profondeur
Aucune extension requise
Le remplissage des favoris se fait au niveau du moteur, donc aucune extension n'est necessaire. Cela elimine la surface de detection qu'une extension de gestion de favoris creerait.
Combinaison avec d'autres signaux d'identite
Les favoris s'integrent naturellement avec les autres drapeaux d'identite de BotBrowser. Une configuration d'identite complete peut inclure des favoris, des cookies, un historique de navigation, un fuseau horaire, une locale et une configuration de proxy, le tout fonctionnant ensemble pour creer une session de navigateur coherente.
Configuration et utilisation
Utilisation CLI basique
# Simple bookmark bar with a few entries
chrome --bot-profile="/path/to/profile.enc" \
--bot-bookmarks='[{"title":"Google","type":"url","url":"https://www.google.com"},{"title":"YouTube","type":"url","url":"https://www.youtube.com"}]'
Structure de dossiers imbriques
chrome --bot-profile="/path/to/profile.enc" \
--bot-bookmarks='[{"title":"Google","type":"url","url":"https://www.google.com"},{"title":"News","type":"folder","children":[{"title":"BBC","type":"url","url":"https://www.bbc.com"},{"title":"Reuters","type":"url","url":"https://www.reuters.com"}]},{"title":"Shopping","type":"folder","children":[{"title":"Amazon","type":"url","url":"https://www.amazon.com"}]}]'
Integration Puppeteer
const puppeteer = require('puppeteer-core');
const bookmarks = JSON.stringify([
{ title: 'Google', type: 'url', url: 'https://www.google.com' },
{ title: 'YouTube', type: 'url', url: 'https://www.youtube.com' },
{
title: 'News',
type: 'folder',
children: [
{ title: 'BBC', type: 'url', url: 'https://www.bbc.com' },
{ title: 'Reuters', type: 'url', url: 'https://www.reuters.com' },
],
},
]);
(async () => {
const browser = await puppeteer.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
`--bot-bookmarks=${bookmarks}`,
],
headless: true,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://example.com');
console.log('Browser launched with pre-populated bookmarks');
await browser.close();
})();
Configuration d'identite complete
chrome --bot-profile="/path/to/profile.enc" \
--bot-bookmarks='[{"title":"Google","type":"url","url":"https://www.google.com"},{"title":"Amazon","type":"url","url":"https://www.amazon.de"}]' \
--bot-inject-random-history \
--bot-cookies="@/path/to/cookies.json" \
--bot-config-timezone=Europe/Berlin \
--bot-config-locale=de-DE \
--bot-config-languages=de-DE,de,en \
--proxy-server=socks5://user:pass@de-proxy:1080
Verification
Apres le lancement avec --bot-bookmarks, verifiez que les favoris sont presents :
const page = await browser.newPage();
// Navigate to bookmark manager
await page.goto('chrome://bookmarks');
// Or check via the chrome.bookmarks API in a privileged context
// Bookmarks should appear in the bookmark bar immediately
Vous pouvez egalement verifier que les favoris apparaissent dans la barre d'adresse en tapant le domaine d'une URL mise en favori et en verifiant si la suggestion affiche l'entree de favori.
Bonnes pratiques
- Faites correspondre les favoris a l'identite du profil. Un profil d'utilisateur allemand devrait avoir des favoris en langue allemande comme google.de, spiegel.de et amazon.de.
- Variez les favoris entre les identites. Chaque identite de navigateur devrait avoir un ensemble de favoris unique pour creer des profils distincts.
- Gardez un nombre realiste. Un utilisateur typique a entre 10 et 50 favoris. Des ensembles extremement grands ou vides paraissent inhabituels.
- Incluez un melange de categories. Les vrais utilisateurs mettent en favori une variete de sites : moteurs de recherche, actualites, shopping, reseaux sociaux et pages liees au travail.
- Utilisez des dossiers pour l'organisation. Les vraies barres de favoris ont souvent des dossiers comme "Travail", "Shopping" ou "Actualites". Inclure des dossiers ajoute du realisme.
- Combinez avec d'autres drapeaux d'identite. Les favoris fonctionnent le mieux avec
--bot-cookies,--bot-inject-random-historyet la configuration locale/fuseau horaire.
Questions frequentes
Quel format JSON accepte --bot-bookmarks ?
Le drapeau accepte un tableau JSON d'objets de favoris. Chaque objet possede un title, un type (soit "url" soit "folder"), et soit un url (pour les types URL) soit un tableau children (pour les types dossier). Le JSON est passe en tant que chaine directement dans l'argument CLI.
Puis-je charger les favoris depuis un fichier au lieu du JSON en ligne ?
Le drapeau --bot-bookmarks accepte une chaine JSON directement. Pour les grands ensembles de favoris, construisez la chaine JSON dans votre script d'automatisation et passez-la comme argument de lancement.
Quand les favoris sont-ils disponibles apres le lancement ?
Les favoris sont remplis pendant l'initialisation du navigateur, avant tout chargement de page. Ils apparaissent dans la barre de favoris et le gestionnaire de favoris immediatement.
Les favoris persistent-ils entre les sessions ?
Les favoris remplis via --bot-bookmarks sont charges a nouveau a chaque lancement du navigateur. Si vous utilisez le meme --user-data-dir entre les sessions, tout favori ajoute pendant la session persistera dans ce repertoire, mais --bot-bookmarks applique toujours ses entrees par-dessus.
Puis-je utiliser --bot-bookmarks avec --bot-inject-random-history ?
Oui. Ces drapeaux sont complementaires. Les combiner cree une session de navigateur avec des favoris et un historique de navigation, qui ensemble creent une identite de navigateur plus complete.
Est-ce que --bot-bookmarks necessite un tier specifique ?
Le drapeau --bot-bookmarks est disponible dans le package BotBrowser de base sans restriction de tier.
Combien de favoris dois-je inclure ?
Visez 10 a 50 favoris, correspondant a ce qu'un utilisateur typique accumule au fil du temps. Incluez un melange de sites courants (moteurs de recherche, email, reseaux sociaux) et de sites de niche qui correspondent au personnage du profil.
Resume
Le pre-remplissage des favoris avec --bot-bookmarks ajoute une couche d'identite realiste aux sessions BotBrowser. Combine avec les cookies, l'historique de navigation et des parametres de locale coherents, les favoris aident a creer des profils de navigateur qui refletent des modeles d'utilisation authentiques plutot que des installations neuves.
Pour les sujets connexes, consultez Gestion des cookies pour la persistance de session, Historique de navigation synthetique pour le remplissage de l'historique, et Gestion des profils pour l'organisation d'ensembles d'identites complets.
Articles Connexes
Faites passer BotBrowser de la recherche à la production
Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.