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


30

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

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


これはとても素晴らしい質問です。ludovic.chabant.com/devblog/2010/12/29/…を見つけましたが、2010-2011年からのものなので、試してみたくありません。インターネットでの5年から6年は永遠です。同じChromeインストール内のGoogleアカウント間やプロファイル間で共有する便利な(更新された)方法があればいいのにと思います。
ライアン

回答:


6

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

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

sqlite3がインストールされている必要があります。交換~/.config/chromeWindowsを使用している場合は、対応するWindowsパスにます。のようなものでなければなりません%AppData%\Local\Google\Chrome\User Data

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

CSVにエクスポートする代わりに、sqlite insertステートメントにエクスポートできます。

(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上記のように、パスをマシン上のパスに置き換えてください。


私にとっては素晴らしい仕事でした!そして、Windows 10でWSLのプラグを提供したいと思います。これにより、本質的にこれはWindowsネイティブソリューションになります。インポートするコマンドも共有しますか?
tbc0

1
@ tbc0インポート手順も追加しました。私は、WSLにテストしていませんが、それは...理論的には動作するはずです
ウィリアムCasarin

'文字を処理する必要がある場合があります。これをawkに追加してfunction esc(s){gsub("\x27","\x27\x27",s);return s}、$ 1および$ 2 ====> esc($ 1)、esc($ 2)
Yzmir Ramirez

5

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

  1. Chromeで検索エンジンの設定ページを開きます(chrome://settings/searchEngines)。
  2. Chromeデベロッパーツールを開きます。
    • ショートカット:F12またはCtrl + Shift + I(Windowsでは、他のプラットフォームのショートカットは異なる場合があります)。
    • 手動ナビゲーション:右上隅の3つのドットメニュー > [ その他のツール] > [ 開発ツール]
  3. クリック Chromeデベロッパーツールの上部のメニューバーでコンソール ]をます。
  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でスクリプトをテストしました。
  • スクリプトは、他の検索エンジンの検索エニーネをエクスポートおよびインポートしますセクションでのみが、デフォルトの検索エンジンを含めるように簡単に調整できます。
  • スクリプトをブックマークレットとして配布しようとしないでください。ブックマークレットはchrome://URLで実行されません(そこで実行されます)。

これらの命令は、私にとっても完璧クロームバージョン74に働いた
ジェイソン・

素晴らしい、まだv78ウィンドウで動作します。
ジュンバー

4

それは可能ですが、それはあなたが望んでいないほどの痛みです。

  1. Chromeプロフィールでウェブデータファイルを見つけます。Windows 7では次のようになります。 "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

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

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

私が言ったように、可能ですが、痛みを伴います。

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

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


1
Googleがもっと簡単になればいいのにと思うが、個人的には「試してみたくないほど痛みがある」とは感じなかった。パトリックの答えは私にとって非常に役に立ちました:superuser.com/a/688270/74576-
ライアン

ウィリアムの答えsuperuser.com/a/1350144/92959は完全に簡単でした。パトリックの答えは、ウィリアムの答えと比べて非常に複雑であることがわかりました。
tbc0

2

Google Chromeの検索エンジンエントリを共有するために次の操作を行いましたが、うまく機能しました。

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

    Windows 7の場合:C:\ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ User Data \ Defaultに移動します

  2. これらの3つのファイルをコピーしますPreferencesWeb DataWeb Data-journal

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


「ウェブデータjounal」なしで私のために働いた(ちょうど「デフォルト」フォルダに両方のファイルをドロップし、再起動クロム)
JinSnow

1

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

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

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

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


0

私は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を再起動したところ、検索キーワードが正常に機能するようになりました。

0

これは私がそれを行う方法です(どこで見つけたか覚えていません)。

  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
    

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.