Come posso condividere le voci del mio motore di ricerca di Google Chrome?


31

Ho creato alcune voci di ricerca in Google Chrome utilizzando "Modifica motori di ricerca".

Come posso condividere alcune di queste voci con i miei colleghi?


Questa è un'ottima domanda. Ho trovato ludovic.chabant.com/devblog/2010/12/29/… ma non voglio preoccuparmi di provarlo dal 2010-2011. Da 5 a 6 anni su Internet è un'eternità. Vorrei che ci fosse un modo conveniente (aggiornato) per condividere tra gli account Google e i profili all'interno della stessa installazione di Chrome.
Ryan,

Risposte:


6

Ecco un solo comando per esportare i tuoi motori di ricerca di Chrome come CSV su Linux:

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

È necessario che sqlite3 sia installato. Sostituisci ~/.config/chromecon il percorso Windows corrispondente se sei su Windows. Dovrebbe essere qualcosa di simile%AppData%\Local\Google\Chrome\User Data

Esportazione come SQL per reimportazione altrove

Invece di esportare in CSV, è possibile esportare in istruzioni insert 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

Quindi copia ~/search-engine-export.sqlsull'altro computer e importa con questo comando:

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

Assicurati di sostituire il Web Datapercorso con quello sulla tua macchina come descritto sopra.


Ha funzionato alla grande per me! E mi piacerebbe dare una spina per WSL su Windows 10, che essenzialmente rende questa una soluzione nativa di Windows. Condivideresti anche il comando da importare?
martedì

1
@ tbc0 Ho aggiunto anche le istruzioni per l'importazione. Non ho provato su WSL ma dovrebbe funzionare in teoria ...
William Casarin,

Potrebbe essere necessario gestire il carattere. Puoi aggiungerlo nel tuo awk function esc(s){gsub("\x27","\x27\x27",s);return s}per $ 1 e $ 2 ====> esc ($ 1), esc ($ 2)
Yzmir Ramirez

6

Ecco una semplice soluzione per esportare e importare le impostazioni del motore di ricerca di Chrome senza utilizzare strumenti esterni o modificare il registro:

  1. Apri la pagina Impostazioni motore di ricerca in Chrome ( chrome://settings/searchEngines).
  2. Apri gli Strumenti per sviluppatori di Chrome.
    • Scorciatoia: F12 o Ctrl + Maiusc + I (su Windows, le scorciatoie su altre piattaforme potrebbero differire).
    • Navigazione manuale: menu a tre punti nell'angolo in alto a destra > Altri strumenti > Strumenti per sviluppatori .
  3. Fai clic su Console nella barra dei menu in alto di Chrome Developer Tools.
  4. Incolla uno dei seguenti script nella console e premi Invio .

Per scaricare un file JSON con le impostazioni del motore di ricerca:

(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));
    });
}());

Per importare le impostazioni da un file JSON creato utilizzando lo script sopra:

(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]);
  });
}());

Gli appunti

  • Ho testato gli script in Chrome 75.0.3770.100 su Windows 8.1.
  • Gli script esportano e importano i motori di ricerca solo nella sezione Altri motori di ricerca , ma possono essere facilmente modificati per includere anche i motori di ricerca predefiniti.
  • Non tentare di distribuire gli script come bookmarklet, i bookmarklet non vengono eseguiti sugli chrome://URL (ci sono stato, fatto quello).

Queste istruzioni hanno funzionato perfettamente per me, versione cromata 74.
Jason

Fantastico, funziona ancora su Windows V78.
Junvar,

4

È possibile, ma è abbastanza un dolore che non vorrai.

  1. Trova il file di dati Web nel tuo profilo Chrome. In Windows 7 sarà qui: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Apri il file con un programma SQLite come SQLite Studio o sqlite in Ubuntu (sudo apt-get install sqlite) ed esporta la tabella delle parole chiave in SQLite Studio o esegui questo comando in Linux: sqlite3 "Web Data" ".dump keywords" > keywords.sql Finestra di dialogo di esportazione di SQLite Studio

  3. Chiedi ai tuoi colleghi di importare le parole chiave, facendo il contrario di questo processo.

Come ho detto, possibile, ma doloroso.

Ho scritto un parser Javascript per convertire l'SQL dai dati Web nel formato di file segnalibro Netscape quasi universale in HTML (ironico che lo standard definitivo per quel formato sembra essere Microsoft) se sei interessato a ottenere le parole chiave in altri browser come Firefox o Opera.

Se sei interessato a una soluzione alternativa, ho creato Shortmarks per permetterti di utilizzare lo stesso set di motori di ricerca personalizzati in qualsiasi browser e ho intenzione di implementare presto la possibilità di condividere con altri. La prossima uscita tra qualche giorno avrà il codice di importazione che ho menzionato sopra non appena avrò finito di testare le nuove funzionalità.


1
Anche se vorrei che Google lo semplificasse, personalmente non mi sentivo "è abbastanza un dolore che non voglio provare". La risposta di Patrick è stata molto utile per me: superuser.com/a/688270/74576
Ryan

La risposta di William superuser.com/a/1350144/92959 è stata totalmente semplice. Ho trovato la risposta di Patrick molto complessa rispetto a quella di William.
TB0,

2

Ho seguito per condividere le voci del mio motore di ricerca di Google Chrome e ha funzionato perfettamente per me:

  1. WINDOWS XP : vai a C: \ Documents and Settings \ Nomeutente_utente \ Impostazioni locali \ Dati applicazioni \ Google \ Chrome \ Dati utente \ Predefinito

    SU WINDOWS 7 : Vai a C: \ Utenti \ Nome utente \ AppData \ Local \ Google \ Chrome \ User Data \ Default

  2. Copiare questi 3 file: Preferences, Web DataeWeb Data-journal

  3. Metti quei 3 file sul computer di destinazione


ha funzionato per me senza "web data-jounal" (basta rilasciare entrambi i file nella cartella "default", riavviare Chrome)
JinSnow


0

Per me, sono su Windows 10 e volevo copiare i motori di ricerca dal mio profilo Chrome personale al mio profilo Chrome aziendale. Ho fatto quanto segue:

  1. Ho scaricato SQLite da https://www.sqlite.org/download.html (sotto "Binari precompilati" con la descrizione "Un pacchetto di strumenti da riga di comando per la gestione dei file di database SQLite"). L'ho decompresso per c:\utilsquello che è già nel mio percorso

  2. Ho aperto cmd.exe

  3. Ho cambiato la directory con il mio profilo Chrome (personale) predefinito

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

  4. Sono uscito completamente da Chrome (anche nel vassoio). Inoltre, conserva una copia di queste istruzioni (o aprile in un altro browser) perché le perderai.

  5. Ho eseguito il seguente:

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

  6. Sono passato al nuovo profilo:

    cd "..\Profile 2\"

  7. Ho eseguito questo:

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

    Ho riscontrato i seguenti errori, che vanno bene:

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

Se ricevi più errori, significa che hai aggiunto motori di ricerca al tuo nuovo profilo. Eliminali tutti, compresi questi nuovi aggiunti e riesegui questo passaggio. Oppure modifica il file SQL manualmente.

  1. Ho eseguito il backup di Chrome e ora le mie parole chiave di ricerca funzionano bene.

0

Ecco come lo faccio (non ricordo dove l'ho trovato).

  1. Crea uno 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. Crea uno 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. Renderli eseguibili:

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. Per esportare, chiudi Chrome ed esegui:

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. Per importare, spegni Chrome ed esegui:

    cp /tmp/keywords.sql  ~/.config/google-chrome/Default
    ./import_chrome_search_engines.sh
    

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.