web-dev-qa-db-ja.com

Google Chrome検索エンジンのエントリを共有するにはどうすればよいですか?

Googleでいくつかの検索エントリを作成しましたChrome「検索エンジンの編集」を使用しています。

これらのエントリのいくつかを同僚と共有するにはどうすればよいですか?

41
Lazer

外部ツールを使用したり、レジストリを編集したりせずに、Chrome検索エンジン設定をエクスポートおよびインポートするための簡単なソリューションを次に示します。

  1. Chrome(chrome://settings/searchEngines))で検索エンジンの設定ページを開きます。
  2. 開くChrome開発者ツール。
    • ショートカット:F12またはCtrl + Shift + I(Windowsでは、ショートカット他のプラットフォームでは異なる場合があります)。
    • 手動ナビゲーション:右上隅にある3つのドットのメニュー>その他のツール>開発者ツール
  3. Chrome開発者ツールの上部メニューバーにあるConsole)をクリックします。
  4. 次のスクリプトのいずれかをコンソールに貼り付け、Enterを押します。

検索エンジン設定を含むJSONファイルをダウンロードするには:

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

上記のスクリプトを使用して作成されたJSONファイルから設定をインポートするには:

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

メモ

  • Windows 8.1のChrome 75.0.3770.100でスクリプトをテストしました。
  • スクリプトは、Other Search Enginesセクションでのみ検索エンジンをエクスポートおよびインポートしますが、デフォルトの検索エンジンを含めるように簡単に調整することもできます。
  • スクリプトをブックマークレットとして配布しようとしないでください。ブックマークレットはchrome://のURLでは実行されません(そこで実行されます)。
18
Petr Srníček

Linuxでchrome検索エンジンをCSVとしてエクスポートする単一のコマンドを次に示します。

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

Sqlite3をインストールする必要があります。 Windowsを使用している場合は、~/.config/chromeを対応するWindowsパスに置き換えます。 %AppData%\Local\Google\Chrome\User Dataのようになります

SQLとしてエクスポートして他の場所に再インポートする

CSVにエクスポートする代わりに、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

次に、~/search-engine-export.sqlを他のマシンにコピーし、次のコマンドでインポートします。

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

上記のように、Web Dataパスをマシン上のパスに置き換えてください。

7
William Casarin

それは可能ですが、あなたがしたくないほどの痛みで十分です。

  1. Chrome=プロファイルでWebデータファイルを見つけます。Windows7では、ここにあります:"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Ubuntuで SQLite Studio またはsqlite(Sudo apt-get install sqlite)などのSQLiteプログラムでファイルを開き、SQLite Studioでキーワードテーブルをエクスポートするか、Linuxで次のコマンドを実行します:sqlite3 "Web Data" ".dump keywords" > keywords.sql SQLite Studio export dialog

  3. このプロセスの逆を行って、同僚にキーワードをインポートしてもらいます。

私が言ったように、可能ですが苦痛です。

SQLをWebデータからほぼ普遍的な Netscapeブックマークファイル形式 HTMLに変換するJavaScriptパーサーを作成しました(その形式の決定的な標準はMicrosoftであるように見える皮肉なことです)。 FirefoxやOperaなどの他のブラウザへのキーワード。

別のソリューションに興味がある場合は、 Shortmarks を作成して、任意のブラウザーで同じカスタム検索エンジンのセットを使用できるようにしました。他のユーザーと共有する機能をすぐに実装する予定です。数日後のリリースには、新機能のテストが完了するとすぐに、前述のインポートコードが含まれます。

4
Dan H

私は自分のGoogle Chrome=検索エンジンエントリを共有するために以下を実行しました、そしてそれは私にとって完全にうまくいきました:

  1. WINDOWS XP:C:\ Documents and Settings\MyUserName\Local Settings\Application Data\Google\Chrome\User Data\Defaultに移動します

    ON WINDOWS 7:C:\ Users\MyUserName\AppData\Local\Google\Chrome\User Data\Defaultに移動します

  2. 次の3つのファイルをコピーします:PreferencesWeb DataおよびWeb Data-journal

  3. これら3つのファイルをターゲットマシンに配置します

2
Kuldeep Jain

私はWindows 10を使用しており、検索エンジンを個人のchromeプロファイルから会社のchromeプロファイルにコピーしました。次のようにしました。

  1. SQLiteを https://www.sqlite.org/download.html からダウンロードしました(「プリコンパイル済みバイナリ」の下に、「SQLiteデータベースファイルを管理するためのコマンドラインツールのバンドル」という説明があります)。パスに既に含まれているc:\utilsに解凍しました

  2. Cmd.exeを開いた

  3. ディレクトリをデフォルト(個人用)に変更しましたchromeプロファイル

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

  4. Chrome)を完全に終了しました(トレイ内にもあります)。また、これらの指示を失う可能性があるため、これらの指示のコピーを保管してください(または別のブラウザで開いてください)。

  5. 私は以下を実行しました:

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

  6. 私は新しいプロファイルに変更しました:

    cd "..\Profile 2\"

  7. 私はこれを実行しました:

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

    次のエラーが発生しましたが、問題ありません。

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

エラーがさらに発生する場合は、新しいプロファイルに検索エンジンを追加したことを意味します。追加したばかりの新しいものを含め、すべて削除して、このステップを再実行します。または、SQLファイルを手動で編集します。

  1. Chromeバックアップしましたが、検索キーワードは正常に機能します。
1

JSONデータから定義をロードするpythonスクリプトを記述しました。これで、構成をコードとして管理できます。

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

これはべき等です(たとえば、複数回実行できます。キーワードによって重複を追加しません)。

Python2とOSXで動作します。他のプラットフォームをサポートするように変更できます。

0
Nino Walker

これが私のやり方です(どこで見つけたか覚えていません)。

  1. スクリプトを作成する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. スクリプトを作成する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. それらを実行可能にします。

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. エクスポートするには、Chrome=をシャットダウンして実行します。

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. インポートするには、Chrome=をシャットダウンして実行します。

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