53 votes

Comment puis-je partager mes entrées de moteur de recherche Google Chrome ?

J'ai créé quelques entrées de recherche dans Google Chrome en utilisant 'Modifier les moteurs de recherche'.

Comment puis-je partager certaines de ces entrées avec mes collègues ?

28voto

Petr Srníček Points 381

Modifier 2020-07-27:

La partie export de cette solution ne fonctionne plus dans Chrome 84 (l'objet settings utilisé dans le script n'est plus disponible). Le script d'importation n'est pas très utile sans la partie export mais il devrait toujours fonctionner pour importer un fichier JSON existant avec les paramètres ou pour transférer les paramètres du moteur de recherche d'une ancienne version de Chrome/Chromium à la version actuelle.

Voici une solution simple pour exporter et importer les paramètres du moteur de recherche de Chrome sans utiliser d'outils externes ou modifier la base de registre :

  1. Ouvrez la page des paramètres du moteur de recherche dans Chrome (chrome://settings/searchEngines).
  2. Ouvrez les outils de développement de Chrome.
  • Raccourci : F12 ou Ctrl+Shift+I (sur Windows, les raccourcis sur d'autres plateformes peuvent différer).
  • Navigation manuelle : Menu des trois points dans le coin supérieur droit > Autres outils > Outils de développement.
  1. Cliquez sur Console dans la barre de menu supérieure des Outils de développement de Chrome.
  2. Collez l'un des scripts suivants dans la console et appuyez sur Entrée.

Pour télécharger un fichier JSON avec les paramètres du moteur de recherche :

(function exportSEs() {
  /* Fonction auxiliaire pour télécharger un fichier avec les données exportées */
  function downloadData(filename, data) {
    const file = new File([data], { type: 'text/json' });
    const elem = document.createElement('a');
    elem.href = URL.createObjectURL(file);
    elem.download = filename;
    elem.click();
  }

  /* Magie réelle de l'exportation du moteur de recherche */
  settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
    .then((searchEngines) => {
      downloadData('search_engines.json', JSON.stringify(searchEngines.others));
    });
}());

Pour importer les paramètres à partir d'un fichier JSON créé en utilisant le script ci-dessus :

(async function importSEs() {
  /* Fonction auxiliaire pour ouvrir une boîte de dialogue de sélection de fichier */
  function selectFileToRead() {
    return new Promise((resolve) => {
      const input = document.createElement('input');
      input.setAttribute('type', 'file');
      input.addEventListener('change', (e) => {
        resolve(e.target.files[0]);
      }, false);
      input.click();
    });
  }

  /* Fonction auxiliaire pour lire des données à partir d'un fichier */
  function readFile(file) {
    return new Promise((resolve) => {
      const reader = new FileReader();
      reader.addEventListener('load', (e) => {
        resolve(e.target.result);
      });
      reader.readAsText(file);
    });
  }

  const file = await selectFileToRead();
  const content = await readFile(file);
  const searchEngines = JSON.parse(content);
  searchEngines.forEach(({ name, keyword, url }) => {
    /* Magie réelle d'importation du moteur de recherche */
    chrome.send('searchEngineEditStarted', [-1]);
    chrome.send('searchEngineEditCompleted', [name, keyword, url]);
  });
}());

Remarques

  • J'ai testé les scripts dans Chrome 75.0.3770.100 sur Windows 8.1.
  • Les scripts exportent et importent seulement les moteurs de recherche dans la section Autres moteurs de recherche mais ils peuvent facilement être ajustés pour inclure également les moteurs de recherche par défaut.
  • Ne pas essayer de distribuer les scripts en tant que bookmarklets, les bookmarklets ne s'exécutent pas sur les URL chrome:// (déjà essayé, déjà fait).

12voto

Deniz Points 99

Voici une seule commande pour exporter vos moteurs de recherche Chrome en CSV sous Linux :

sqlite3 -csv ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url from keywords' > ~/search-engines.csv

Vous devez avoir sqlite3 installé. Remplacez ~/.config/chrome par le chemin Windows correspondant si vous êtes sur Windows. Cela devrait ressembler à quelque chose comme %AppData%\Local\Google\Chrome\User Data

Exportation en SQL pour réimportation ailleurs

Au lieu d'exporter en CSV, vous pourriez exporter en instructions d'insertion sqlite :

(printf 'begin transaction;\n'; sqlite3 ~/.config/chromium/Default/Web\ Data 'select short_name,keyword,url,favicon_url from keywords' | awk -F\| '{ printf "insert into keywords (short_name, keyword, url, favicon_url) values ('"'"%s"'"', '"'"%s"'"', '"'"%s"'"', '"'"%s"'"');\n", $1, $2, $3, $4 }'; printf 'end transaction;\n') > ~/search-engine-export.sql

Ensuite, copiez ~/search-engine-export.sql sur l'autre machine, et importez avec cette commande :

sqlite3 ~/.config/chromium/Default/Web\ Data < search-engine-export.sql

Veillez à remplacer le chemin Web Data par celui de votre machine tel que décrit ci-dessus.

7voto

Albert Points 31

...s'appuyant sur https://superuser.com/a/1458616/55621 mais en essayant de le mettre à jour pour fonctionner avec les versions actuelles de Chrome. Cela fonctionnait environ avec Chrome 88 sur un Mac.

Pour télécharger un fichier JSON avec les paramètres du moteur de recherche :

(function exportSEs() {
  /* Fonction auxiliaire pour télécharger un fichier avec les données exportées */
  function downloadData(filename, data) {
    const file = new File([data], { type: 'text/json' });
    const elem = document.createElement('a');
    elem.href = URL.createObjectURL(file);
    elem.download = filename;
    elem.click();
  }

  let searchEngines = [];
  document.querySelector('settings-ui').shadowRoot
    .querySelector('settings-main').shadowRoot
    .querySelector('settings-basic-page').shadowRoot
    .querySelector('settings-search-page').shadowRoot
    .querySelector('settings-search-engines-page').shadowRoot
    .querySelector('settings-search-engines-list#otherEngines').shadowRoot
    .querySelectorAll('settings-search-engine-entry')
    .forEach($el => searchEngines.push(
      {
        name: $el.shadowRoot.querySelector('#name-column').textContent,
        keyword: $el.shadowRoot.querySelector('#keyword-column').textContent,
        url: $el.shadowRoot.querySelector('#url-column').textContent
      })
    )

  downloadData('search_engines.json', JSON.stringify(searchEngines));
}());

Pour importer les paramètres à partir d'un fichier JSON créé en utilisant le script ci-dessus :

(async function importSEs() {
  /* Fonction auxiliaire pour ouvrir une boîte de dialogue de sélection de fichier */
  function selectFileToRead() {
    return new Promise((resolve) => {
      const input = document.createElement('input');
      input.setAttribute('type', 'file');
      input.addEventListener('change', (e) => {
        resolve(e.target.files[0]);
      }, false);
      input.click();
    });
  }

  /* Fonction auxiliaire pour lire les données à partir d'un fichier */
  function readFile(file) {
    return new Promise((resolve) => {
      const reader = new FileReader();
      reader.addEventListener('load', (e) => {
        resolve(e.target.result);
      });
      reader.readAsText(file);
    });
  }

  const file = await selectFileToRead();
  const content = await readFile(file);
  const searchEngines = JSON.parse(content);
  searchEngines.forEach(({ name, keyword, url }) => {
    /* Véritable magie d'importation de moteur de recherche */
    chrome.send('searchEngineEditStarted', [-1]);
    chrome.send('searchEngineEditCompleted', [name, keyword, url]);
  });
}());

Il est très probable que cela ne fonctionne pas avec les versions ultérieures de Chrome, et il y a probablement une meilleure façon de parcourir le DOM.

6voto

Badams Points 156

C'est possible, mais c'est assez pénible pour que vous ne vouliez pas le faire.

  1. Trouvez le fichier Web Data dans votre profil Chrome. Sous Windows 7, il se trouvera ici : "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Ouvrez le fichier avec un programme SQLite comme SQLite Studio ou sqlite sous Ubuntu (sudo apt-get install sqlite) et exportez la table des mots-clés dans SQLite Studio ou exécutez cette commande sous Linux : sqlite3 "Web Data" ".dump keywords" > keywords.sql Boîte de dialogue d'exportation de SQLite Studio

  3. Demander à vos collègues d'importer les mots-clés, en inversant le processus.

Comme je l'ai dit, c'est possible, mais douloureux.

J'ai écrit un analyseur Javascript pour convertir le SQL de Web Data dans le format de fichier de signets Netscape presque universel en HTML (ironique que la norme définitive pour ce format semble être Microsoft) si vous êtes intéressé à transférer les mots-clés dans d'autres navigateurs comme Firefox ou Opera.

Si vous êtes intéressé par une solution alternative, j'ai créé Shortmarks pour vous permettre d'utiliser le même ensemble de moteurs de recherche personnalisés dans n'importe quel navigateur, et j'ai l'intention de mettre en œuvre bientôt la possibilité de partager avec d'autres. La prochaine version, dans quelques jours, aura le code d'importation mentionné ci-dessus dès que j'aurai fini de tester les nouvelles fonctionnalités.

4voto

Kuldeep Jain Points 149

J'ai suivi ce qui suit pour partager mes entrées de moteur de recherche Google Chrome et cela a parfaitement fonctionné pour moi :

  1. WINDOWS XP : Accédez à C:\Documents and Settings\NomUtilisateur\Paramètres locaux\Données d'application\Google\Chrome\Données utilisateur\Par défaut

    SUR WINDOWS 7 : Accédez à C:\Utilisateurs\NomUtilisateur\AppData\Local\Google\Chrome\Données utilisateur\Par défaut

  2. Copiez ces 3 fichiers : Préférences, Web Data et Web Data-journal

  3. Placez ces 3 fichiers sur la machine cible

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X