¿Cómo puedo compartir mis entradas del motor de búsqueda de Google Chrome?

31

He creado algunas entradas de búsqueda en Google Chrome usando 'Editar motores de búsqueda'.

¿Cómo puedo compartir algunas de estas entradas con mis colegas?

Lazer
fuente
Esta es una gran pregunta. Encontré ludovic.chabant.com/devblog/2010/12/29/... pero no quiero molestarme en probarlo ya que es de 2010-2011. 5 a 6 años en internet es una eternidad. Desearía que hubiera una forma conveniente (actualizada) de compartir entre cuentas de Google y entre perfiles dentro de la misma instalación de Chrome.
Ryan

Respuestas:

6

Aquí hay un comando único para exportar sus motores de búsqueda de Chrome como CSV en Linux:

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

Necesita sqlite3 instalado. Reemplace ~/.config/chromecon la ruta de Windows correspondiente si está en Windows. Debería ser algo como%AppData%\Local\Google\Chrome\User Data

Exportar como SQL para volver a importar en otro lugar

En lugar de exportar a CSV, puede exportar a declaraciones de inserción 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

Luego copie ~/search-engine-export.sqla la otra máquina e importe con este comando:

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

Asegúrese de reemplazar la Web Dataruta con la de su máquina como se describe anteriormente.

William Casarin
fuente
¡Funcionó muy bien para mí! Y me gustaría darle un complemento a WSL en Windows 10, lo que esencialmente lo convierte en una solución nativa de Windows. ¿Compartirías también el comando para importar?
tbc0
1
@ tbc0 También agregué instrucciones de importación. No he probado en WSL pero debería funcionar en teoría ...
William Casarin
Puede que tenga que manejar el 'personaje. Puede agregar esto en su awk function esc(s){gsub("\x27","\x27\x27",s);return s}por $ 1 y $ 2 ====> esc ($ 1), esc ($ 2)
Yzmir Ramirez
6

Aquí hay una solución simple para exportar e importar la configuración del motor de búsqueda de Chrome sin usar herramientas externas o editar el registro:

  1. Abra la página de configuración del motor de búsqueda en Chrome (chrome://settings/searchEngines ).
  2. Abre las Herramientas para desarrolladores de Chrome.
    • Atajo: F12 o Ctrl + Shift + I (en Windows, los atajos en otras plataformas pueden diferir).
    • Navegación manual: menú de tres puntos en la esquina superior derecha > Más herramientas > Herramientas para desarrolladores .
  3. Haga clic en la consola en en la barra de menú superior de Chrome Developer Tools.
  4. Pegue uno de los siguientes scripts en la consola y presione Entrar .

Para descargar un archivo JSON con la configuración del motor de búsqueda:

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

Para importar configuraciones desde un archivo JSON creado usando el script anterior:

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

Notas

  • Probé los scripts en Chrome 75.0.3770.100 en Windows 8.1.
  • Los scripts exportan e importan enines de búsqueda en la sección Otros motores de búsqueda solamente, pero pueden modificarse fácilmente para incluir también motores de búsqueda predeterminados.
  • No intente distribuir los scripts como marcadores, los marcadores no se ejecutan en chrome://URL (estado allí, hecho eso).
Petr Srníček
fuente
Estas instrucciones funcionaron perfectamente para mí, versión 74 de Chrome.
Jason
Brillante, todavía funciona en Windows v78.
junvar
4

Es posible, pero es suficiente dolor que no querrás.

  1. Encuentra el archivo de datos web en tu perfil de Chrome. En Windows 7 estará aquí: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Abra el archivo con un programa SQLite como SQLite Studio o sqlite en Ubuntu (sudo apt-get install sqlite) y exporte la tabla de palabras clave en SQLite Studio o ejecute este comando en Linux: sqlite3 "Web Data" ".dump keywords" > keywords.sql Diálogo de exportación de SQLite Studio

  3. Haga que sus colegas importen las palabras clave, haciendo lo contrario de este proceso.

Como dije, posible, pero doloroso.

Escribí un analizador Javascript para convertir el SQL de datos web en el formato de archivo de marcador Netscape casi universal en HTML (irónico que el estándar definitivo para ese formato parece ser Microsoft) si está interesado en obtener las palabras clave en otros navegadores como Firefox u ópera.

Si está interesado en una solución alternativa, creé Shortmarks para permitirle usar el mismo conjunto de motores de búsqueda personalizados en cualquier navegador, y planeo implementar la capacidad de compartir con otros pronto. El próximo lanzamiento en unos días tendrá el código de importación que mencioné anteriormente tan pronto como termine de probar las nuevas funciones.

Dan H
fuente
1
Aunque desearía que Google lo hiciera más fácil, personalmente no sentí "es suficiente dolor que no quiera intentarlo". La respuesta de Patrick fue muy útil para mí: superuser.com/a/688270/74576
Ryan
La respuesta de William superuser.com/a/1350144/92959 fue totalmente fácil. La respuesta de Patrick me pareció muy compleja en comparación con la de William.
tbc0
2

Hice lo siguiente para compartir mis entradas del motor de búsqueda de Google Chrome y funcionó perfectamente bien para mí:

  1. WINDOWS XP : vaya a C: \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default

    EN WINDOWS 7 : vaya a C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default

  2. Copiar estos 3 archivos: Preferences, Web DatayWeb Data-journal

  3. Pon esos 3 archivos en la máquina de destino

Kuldeep Jain
fuente
funcionó para mí sin "web data-jounal" (simplemente suelte ambos archivos en la carpeta "predeterminada", reinicie Chrome)
JinSnow
1

Escribí un script de Python que carga definiciones de datos JSON. Ahora puede administrar su configuración como código:

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

Esto es idempotente (por ejemplo, puede ejecutarse varias veces; no agregará duplicados por palabra clave).

Funciona con python2 y OSX. Se puede modificar para admitir otras plataformas.

Nino Walker
fuente
0

Para mí, estoy en Windows 10 y quería copiar motores de búsqueda de mi perfil personal de Chrome a mi perfil corporativo de Chrome. Hice lo siguiente:

  1. Descargué SQLite de https://www.sqlite.org/download.html (en "Binarios precompilados" con la descripción "Un paquete de herramientas de línea de comandos para administrar archivos de base de datos SQLite"). Lo descomprimí para c:\utilsque ya esté en mi camino

  2. Abrí cmd.exe

  3. Cambié el directorio a mi perfil de Chrome predeterminado (personal)

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

  4. Salí de Chrome por completo (incluso en la bandeja). Además, guarde una copia de estas instrucciones (o ábralas en un navegador diferente) porque las perderá.

  5. Ejecuté lo siguiente:

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

  6. Cambié al nuevo perfil:

    cd "..\Profile 2\"

  7. Corrí esto:

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

    Recibí los siguientes errores, que están bien:

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 obtiene más errores, eso significa que agregó motores de búsqueda a su nuevo perfil. Elimínelos todos, incluidos los nuevos que acaba de agregar y vuelva a ejecutar este paso. O edite el archivo SQL a mano.

  1. Volví a Chrome y ahora mis palabras clave de búsqueda funcionan bien.
Ryan Shillington
fuente
0

Así es como lo hago (no recuerdo dónde lo encontré).

  1. Crea 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. Crea 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. Hazlos ejecutables:

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. Para exportar, apaga Chrome y ejecuta:

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. Para importar, apaga Chrome y ejecuta:

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

A partir de ahora, no, no puedes. Sin embargo, puede compartir marcadores con sus colegas.

Enlace a compartir marcadores de Google a partir de ahora, los usuarios de la aplicación Google no pueden compartir marcadores o listas de marcadores.

wizlog
fuente