Wie kann ich meine Google Chrome-Suchmaschineneinträge freigeben?


30

Ich habe einige Sucheinträge in Google Chrome mit "Suchmaschinen bearbeiten" erstellt.

Wie kann ich einige dieser Einträge mit meinen Kollegen teilen?


Das ist so eine tolle Frage. Ich habe ludovic.chabant.com/devblog/2010/12/29/… gefunden, möchte es aber nicht versuchen, da es von 2010-2011 ist. 5 bis 6 Jahre im Internet sind eine Ewigkeit. Ich wünschte, es gäbe eine bequeme (aktualisierte) Möglichkeit zum Teilen zwischen Google-Konten und zwischen Profilen innerhalb derselben Chrome-Installation.
Ryan

Antworten:


6

Hier ist ein einziger Befehl zum Exportieren Ihrer Chrome-Suchmaschinen als CSV unter Linux:

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

Sie müssen sqlite3 installiert haben. Ersetzen Sie ~/.config/chromedurch den entsprechenden Windows-Pfad, wenn Sie Windows verwenden. Sollte sowas sein%AppData%\Local\Google\Chrome\User Data

Exportieren als SQL zum erneuten Importieren an anderer Stelle

Anstatt nach CSV zu exportieren, können Sie auch nach SQLite-Einfügeanweisungen exportieren:

(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

Dann kopieren Sie ~/search-engine-export.sqlauf die andere Maschine und importieren mit diesem Befehl:

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

Stellen Sie sicher, dass Sie den Web DataPfad wie oben beschrieben durch den Pfad auf Ihrem Computer ersetzen .


Hat super für mich funktioniert! Und ich würde gerne einen Plug für WSL unter Windows 10 geben, was dies im Wesentlichen zu einer nativen Windows-Lösung macht. Möchten Sie auch den zu importierenden Befehl freigeben?
Donnerstag,

1
@ tbc0 Ich habe auch Importanweisungen hinzugefügt. Ich habe nicht auf WSL getestet, aber es sollte theoretisch funktionieren ...
William Casarin

Möglicherweise müssen Sie mit dem Zeichen 'umgehen. Sie können dies in Ihre awk function esc(s){gsub("\x27","\x27\x27",s);return s}für $ 1 und $ 2 hinzufügen ====> esc ($ 1), esc ($ 2)
Yzmir Ramirez

5

Im Folgenden finden Sie eine einfache Lösung zum Exportieren und Importieren von Chrome-Suchmaschineneinstellungen, ohne externe Tools zu verwenden oder die Registrierung zu bearbeiten:

  1. Öffnen Sie die Seite "Suchmaschineneinstellungen" in Chrome ( chrome://settings/searchEngines).
  2. Öffnen Sie die Chrome Developer Tools.
    • Tastenkürzel: F12 oder Strg + Umschalt + I (unter Windows können sich die Tastenkürzel auf anderen Plattformen unterscheiden).
    • Manuelle Navigation: Dreipunktmenü in der oberen rechten Ecke > Weitere Tools > Entwicklertools .
  3. Klicken Sie in der oberen Menüleiste der Chrome Developer Tools auf Konsole .
  4. Fügen Sie eines der folgenden Skripte in die Konsole ein und drücken Sie die Eingabetaste .

So laden Sie eine JSON-Datei mit Suchmaschineneinstellungen herunter:

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

So importieren Sie Einstellungen aus einer JSON-Datei, die mit dem obigen Skript erstellt wurde:

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

Anmerkungen

  • Ich habe die Skripte in Chrome 75.0.3770.100 unter Windows 8.1 getestet.
  • Die Skripte exportieren und importieren Suchmaschinen nur im Abschnitt " Andere Suchmaschinen". Sie können jedoch problemlos so angepasst werden, dass sie auch Standardsuchmaschinen enthalten.
  • Versuchen Sie nicht, die Skripte als Bookmarklets zu verteilen. Bookmarklets werden nicht auf chrome://URLs ausgeführt.

Diese Anleitung funktionierte perfekt für mich, Chrome-Version 74.
Jason

Genial, funktioniert immer noch auf v78-Fenstern.
26.

4

Es ist möglich, aber es ist genug von einem Schmerz, den Sie nicht wollen.

  1. Suchen Sie die Web-Datendatei in Ihrem Chrome-Profil. In Windows 7 wird es hier sein: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Öffnen Sie die Datei mit einem SQLite-Programm wie SQLite Studio oder SQLite in Ubuntu (sudo apt-get install sqlite) und exportieren Sie die Schlüsselworttabelle in SQLite Studio oder führen Sie diesen Befehl unter Linux aus: sqlite3 "Web Data" ".dump keywords" > keywords.sql SQLite Studio-Exportdialog

  3. Lassen Sie Ihre Kollegen die Schlüsselwörter importieren, indem Sie den Vorgang in umgekehrter Reihenfolge durchführen.

Wie gesagt, möglich, aber schmerzhaft.

Ich habe einen Javascript-Parser geschrieben, um SQL von Webdaten in das nahezu universelle Netscape-Lesezeichen-Dateiformat in HTML umzuwandeln (ironischerweise ist Microsoft der maßgebliche Standard für dieses Format), wenn Sie die Schlüsselwörter in andere Browser wie Firefox übertragen möchten oder Opera.

Wenn Sie an einer alternativen Lösung interessiert sind, habe ich Shortmarks erstellt , mit denen Sie die gleichen benutzerdefinierten Suchmaschinen in jedem Browser verwenden können, und ich plane, die Möglichkeit zu implementieren, sie bald für andere freizugeben. Die kommende Veröffentlichung in ein paar Tagen wird den oben erwähnten Importcode haben, sobald ich mit dem Testen der neuen Funktionen fertig bin.


1
Obwohl ich mir gewünscht habe, dass Google es einfacher macht, habe ich persönlich nicht das Gefühl, dass "es ein Schmerz ist, den ich nicht ausprobieren möchte". Patricks Antwort war sehr hilfreich für mich: superuser.com/a/688270/74576
Ryan

Williams Antwort superuser.com/a/1350144/92959 war ganz einfach. Ich fand Patricks Antwort im Vergleich zu Williams sehr komplex.
tbc0

2

Ich habe Folgendes getan, um meine Google Chrome-Suchmaschineneinträge freizugeben, und es hat für mich einwandfrei funktioniert:

  1. WINDOWS XP : Wechseln Sie zu C: \ Dokumente und Einstellungen \ MeinBenutzername \ Lokale Einstellungen \ Anwendungsdaten \ Google \ Chrome \ Benutzerdaten \ Standard

    UNTER WINDOWS 7 : Wechseln Sie zu C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Default

  2. Kopieren Sie diese drei Dateien: Preferences, Web DataundWeb Data-journal

  3. Legen Sie diese 3 Dateien auf den Zielcomputer


funktionierte bei mir ohne "web data-jounal" (beide
dateien

1

Ich habe ein Python-Skript geschrieben, das Definitionen aus JSON-Daten lädt. Jetzt können Sie Ihre Konfiguration als Code verwalten:

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

Dies ist idempotent (z. B. kann mehrmals ausgeführt werden; Duplikate werden nicht anhand von Schlüsselwörtern hinzugefügt).

Funktioniert mit Python2 und OSX. Kann geändert werden, um andere Plattformen zu unterstützen.


0

Ich arbeite unter Windows 10 und wollte Suchmaschinen von meinem persönlichen Chrome-Profil in mein Corporate Chrome-Profil kopieren. Ich habe folgendes gemacht:

  1. Ich habe SQLite von https://www.sqlite.org/download.html heruntergeladen (unter "Vorkompilierte Binärdateien" mit der Beschreibung "Ein Paket von Befehlszeilentools zum Verwalten von SQLite-Datenbankdateien"). Ich habe es entpackt, c:\utilsdas ist schon in meinem Weg

  2. Ich habe cmd.exe geöffnet

  3. Ich habe das Verzeichnis in mein standardmäßiges (persönliches) Chrome-Profil geändert

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

  4. Ich habe Chrome vollständig beendet (sogar in der Taskleiste). Bewahren Sie außerdem eine Kopie dieser Anweisungen auf (oder öffnen Sie sie in einem anderen Browser), da Sie sie verlieren werden.

  5. Ich habe folgendes ausgeführt:

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

  6. Ich habe auf das neue Profil gewechselt:

    cd "..\Profile 2\"

  7. Ich habe folgendes ausgeführt:

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

    Ich habe folgende Fehler, die in Ordnung sind:

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

Wenn mehr Fehler auftreten, haben Sie Ihrem neuen Profil Suchmaschinen hinzugefügt. Löschen Sie alle, einschließlich der gerade hinzugefügten, und führen Sie diesen Schritt erneut aus. Oder bearbeiten Sie die SQL-Datei von Hand.

  1. Ich habe ein Backup von Chrome erstellt und meine Suchbegriffe funktionieren nun einwandfrei.

0

So mache ich es (ich erinnere mich nicht, wo ich es gefunden habe).

  1. Erstellen Sie ein Skript 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. Erstellen Sie ein Skript 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. Machen Sie sie ausführbar:

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. Beenden Sie zum Exportieren Chrome und führen Sie Folgendes aus:

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. Beenden Sie zum Importieren Chrome und führen Sie Folgendes aus:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.