Comment partager mes entrées dans le moteur de recherche Google Chrome?

31

J'ai créé des entrées de recherche dans Google Chrome à l'aide de "Modifier les moteurs de recherche".

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

Lazer
la source
C'est une si grande question. J'ai trouvé ludovic.chabant.com/devblog/2010/12/29/… mais je ne veux pas m'embêter à l'essayer car c'est de 2010-2011. 5 à 6 ans sur Internet est une éternité. Je souhaite qu'il y ait un moyen pratique (mis à jour) de partager entre les comptes Google et les profils au sein de la même installation Chrome.
Ryan

Réponses:

6

Voici une seule commande pour exporter vos moteurs de recherche Chrome au format CSV sur Linux:

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

Vous devez installer sqlite3. Remplacez ~/.config/chromepar le chemin Windows correspondant si vous êtes sous Windows. Devrait être quelque chose comme%AppData%\Local\Google\Chrome\User Data

Exportation au format SQL pour réimportation ailleurs

Au lieu d'exporter vers CSV, vous pouvez exporter vers des 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

Copiez ensuite ~/search-engine-export.sqlsur l'autre machine et importez avec cette commande:

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

Assurez-vous de remplacer le Web Datachemin par celui de votre machine comme décrit ci-dessus.

William Casarin
la source
Fonctionne très bien pour moi! Et je voudrais donner une prise pour WSL sur Windows 10, ce qui en fait essentiellement une solution native pour Windows. Souhaitez-vous également partager la commande à importer?
tbc0
1
@ tbc0 J'ai également ajouté des instructions d'importation. Je n'ai pas testé sur WSL mais ça devrait fonctionner en théorie ...
William Casarin
Vous devrez peut-être gérer le caractère. Vous pouvez ajouter cela dans votre awk function esc(s){gsub("\x27","\x27\x27",s);return s}pour 1 $ et 2 $ ====> esc (1 $), esc (2 $)
Yzmir Ramirez
6

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

  1. Ouvrez la page Paramètres du moteur de recherche dans Chrome ( chrome://settings/searchEngines).
  2. Ouvrez Chrome Developer Tools.
    • Raccourci: F12 ou Ctrl + Maj + I (sous Windows, les raccourcis sur d'autres plateformes peuvent différer).
    • Navigation manuelle: menu à trois points dans le coin supérieur droit > Plus d'outils > Outils de développement .
  3. Cliquez sur Console dans la barre de menus supérieure des outils de développement Chrome.
  4. 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() {
  /* Auxiliary function to download a file with the exported data */
  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();
  }

  /* Actual search engine export magic */
  settings.SearchEnginesBrowserProxyImpl.prototype.getSearchEnginesList()
    .then((searchEngines) => {
      downloadData('search_engines.json', JSON.stringify(searchEngines.others));
    });
}());

Pour importer des paramètres à partir d'un fichier JSON créé à l'aide du script ci-dessus:

(async function importSEs() {
  /* Auxiliary function to open a file selection dialog */
  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();
    });
  }

  /* Auxiliary function to read data from a file */
  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 }) => {
    /* Actual search engine import magic */
    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 des moteurs de recherche dans la section Autres moteurs de recherche uniquement, mais ils peuvent facilement être modifiés pour inclure également les moteurs de recherche par défaut.
  • N'essayez pas de distribuer les scripts sous forme de bookmarklets, les bookmarklets ne s'exécutent pas sur les chrome://URL (déjà là, faites cela).
Petr Srníček
la source
Ces instructions ont parfaitement fonctionné pour moi, version chromée 74.
Jason
Brillant, fonctionne toujours sur les fenêtres v78.
junvar
4

C'est possible, mais c'est assez d'une douleur que vous ne voudrez pas.

  1. Recherchez le fichier de données Web dans votre profil Chrome. Dans Windows 7, ce sera ici: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Ouvrez le fichier avec un programme SQLite comme SQLite Studio ou sqlite dans 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 SQLite Studio

  3. Demandez à vos collègues d'importer les mots clés, en procédant à l'inverse de ce processus.

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

J'ai écrit un analyseur Javascript pour convertir le SQL des données Web au format de fichier de signets Netscape presque universel en HTML (ironique que la norme définitive pour ce format semble être Microsoft) si vous souhaitez obtenir les mots clés dans d'autres navigateurs comme Firefox ou Opera.

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

Dan H
la source
1
Bien que je souhaite que Google facilite les choses, je n'ai pas personnellement ressenti "c'est assez de douleur que je ne veux pas essayer". La réponse de Patrick m'a été très utile: superuser.com/a/688270/74576
Ryan
La réponse de William superuser.com/a/1350144/92959 était totalement simple. J'ai trouvé la réponse de Patrick très complexe par rapport à celle de William.
tbc0
2

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

  1. WINDOWS XP : accédez à C: \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default

    SUR WINDOWS 7 : accédez à C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default

  2. Copiez ces 3 fichiers: Preferences, Web DataetWeb Data-journal

  3. Mettez ces 3 fichiers sur la machine cible

Kuldeep Jain
la source
travaillé pour moi sans "web data-jounal" (déposez simplement les deux fichiers dans le dossier "default", redémarrez chrome)
JinSnow 11/11/15
1

J'ai écrit un script python qui charge les définitions à partir des données JSON. Vous pouvez maintenant gérer votre configuration en tant que code:

https://gist.github.com/ninowalker/9952bf435f8acffa3ef59d6c538ca165

Ceci est idempotent (par exemple, peut être exécuté plusieurs fois; n'ajoutera pas de doublons par mot-clé).

Fonctionne avec python2 et OSX. Peut être modifié pour prendre en charge d'autres plates-formes.

Nino Walker
la source
0

Pour moi, je suis sur Windows 10 et je voulais copier les moteurs de recherche de mon profil Chrome personnel vers mon profil Chrome d'entreprise. J'ai fait ce qui suit:

  1. J'ai téléchargé SQLite à partir de https://www.sqlite.org/download.html (sous "Binaires précompilés" avec la description "Un ensemble d'outils de ligne de commande pour gérer les fichiers de base de données SQLite"). Je l'ai décompressé pour c:\utilsque ce soit déjà sur mon chemin

  2. J'ai ouvert cmd.exe

  3. J'ai changé de répertoire pour mon profil chrome (personnel) par défaut

    cd "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default"

  4. J'ai quitté Chrome entièrement (même dans le bac). Conservez également une copie de ces instructions (ou ouvrez-les dans un autre navigateur) car vous les perdrez.

  5. J'ai couru ce qui suit:

    sqlite3 "Web Data" ".dump keywords" > c:\keywords.sql

  6. J'ai changé pour le nouveau profil:

    cd "..\Profile 2\"

  7. J'ai couru ceci:

    sqlite3.exe "Web Data" < c:\keywords.sql

    J'ai les erreurs suivantes, qui sont correctes:

Error: near line 4: UNIQUE constraint failed: keywords.id Error: near line 5: UNIQUE constraint failed: keywords.id Error: near line 6: UNIQUE constraint failed: keywords.id Error: near line 7: UNIQUE constraint failed: keywords.id Error: near line 8: UNIQUE constraint failed: keywords.id

Si vous obtenez plus d'erreurs, cela signifie que vous avez ajouté des moteurs de recherche à votre nouveau profil. Supprimez-les tous, y compris les nouveaux que vous venez d'ajouter et relancez cette étape. Ou modifiez le fichier SQL à la main.

  1. J'ai renvoyé Chrome et maintenant mes mots clés de recherche fonctionnent correctement.
Ryan Shillington
la source
0

Voici comment je le fais (je ne me souviens pas où je l'ai trouvé).

  1. Créez un script export_chrome_search_engines.sh:

    #!/bin/sh
    
    DESTINATION=${1:-./keywords.sql}
    TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
    echo "Exporting Chrome keywords to $DESTINATION..."
    cd ~/.config/google-chrome/Default
    echo .output $DESTINATION > $TEMP_SQL_SCRIPT
    echo .dump keywords >> $TEMP_SQL_SCRIPT
    sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
    rm $TEMP_SQL_SCRIPT
    
  2. Créez un script import_chrome_search_engines.sh:

    #!/bin/sh
    if ps -x | grep -v grep | grep Google\ Chrome > /dev/null; then
        echo "Close Chrome and try again..."
        exit 1
    fi
    
    SOURCE=${1:-./keywords.sql}
    #SOURCE=$1
    TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script
    echo
    echo "Importing Chrome keywords from $SOURCE..."
    cd ~/.config/google-chrome/Default
    echo DROP TABLE IF EXISTS keywords\; > $TEMP_SQL_SCRIPT
    echo .read $SOURCE >> $TEMP_SQL_SCRIPT
    sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit
    rm $TEMP_SQL_SCRIPT
    
  3. Rendez-les exécutables:

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. Pour exporter, fermez Chrome et exécutez:

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. Pour importer, fermez Chrome et exécutez:

    cp /tmp/keywords.sql  ~/.config/google-chrome/Default
    ./import_chrome_search_engines.sh
    
Dennis Golomazov
la source
-2

Pour l'instant, non, vous ne pouvez pas. Cependant, vous pouvez partager des signets avec vos collègues.

Lien vers le partage de signets Google pour le moment, les utilisateurs de l'application Google ne peuvent pas partager de signets ou de listes de signets.

wizlog
la source