如何共享我的Google Chrome搜索引擎条目?


30

我已经使用“编辑搜索引擎”在Google Chrome中创建了一些搜索条目。

我如何与同事共享其中一些条目?


这是一个很大的问题。我找到了ludovic.chabant.com/devblog/2010/12/29/…,但是不想打扰,因为它是2010年至2011年。在互联网上5至6年是永恒的。我希望有一种方便的(更新的)方式可以在同一Chrome安装中的Google帐户和个人资料之间共享。
瑞安

Answers:


6

这是在Linux上将chrome搜索引擎导出为CSV的单个命令:

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

您需要安装sqlite3。更换~/.config/chrome如果您使用的是Windows,请为相应的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使用上述机器上的路径替换路径。


对我来说很棒!我想给Windows 10上的WSL插件,这实际上使它成为Windows本地解决方案。您还会共享导入命令吗?
tbc0

1
@ tbc0我也添加了导入说明。我尚未在WSL上进行过测试,但它在理论上应该可以工作……
William Casarin

您可能必须处理'字符。您可以将其添加到function esc(s){gsub("\x27","\x27\x27",s);return s}$ 1和$ 2的awk 中====> esc($ 1),esc($ 2)
Yzmir Ramirez

5

这是一个无需使用任何外部工具或编辑注册表即可导出和导入Chrome搜索引擎设置的简单解决方案:

  1. 在Chrome中打开“搜索引擎设置”页面(chrome://settings/searchEngines)中。
  2. 打开Chrome开发者工具。
    • 快捷键:F12Ctrl + Shift + I(在Windows上,其他平台上的快捷方式可能有所不同)。
    • 手动导航:右上角的三点菜单 > 更多工具 > 开发人员工具
  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上执行(在此完成)。

这些指令完美工作很适合我,Chrome版本74
杰森

出色,仍然可以在v78窗口上运行。
六月

4

可能,但是您不想痛苦就足够了。

  1. 在您的Chrome个人资料中找到网络数据文件。在Windows 7中将位于此处: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. 在Ubuntu中使用SQLite程序(如SQLite Studio或sqlite)打开文件(sudo apt-get install sqlite),然后在SQLite Studio中导出关键字表,或在Linux中运行以下命令: sqlite3 "Web Data" ".dump keywords" > keywords.sql SQLite Studio导出对话框

  3. 让您的同事导入关键字,然后执行相反的过程。

就像我说的那样,可能,但是痛苦。

我写了一个Javascript解析器,将SQL从Web数据转换为几乎通用的Netscape书签文件格式如果您有兴趣将关键字引入其他浏览器(如Firefox), HTML形式(这表明该格式的最终​​标准似乎是Microsoft)。或歌剧。

如果您对替代解决方案感兴趣,我创建了Shortmarks,以允许您在任何浏览器中使用同一组自定义搜索引擎,并且我计划实现与他人共享的功能。我将在完成新功能测试后的几天内发布即将发布的导入代码。


1
尽管我希望Google变得更轻松,但我个人并不觉得“我不想尝试就已经很痛苦”。帕特里克的回答对我非常有帮助:superuser.com/a/688270/74576
Ryan

威廉的回答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个文件放到目标计算机上


为我工作,没有“ web data-jounal”(只需将两个文件都放到“ default”文件夹中,重新启动chrome)
JinSnow


0

对我来说,我使用的是Windows 10,我想将搜索引擎从我的个人chrome配置文件复制到公司chrome配置文件。我做了以下事情:

  1. 我从https://www.sqlite.org/download.html(在“预编译的二进制文件”下,描述为“用于管理SQLite数据库文件的命令行工具包”)下载了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
    

-2

到目前为止,不,您不能。但是,您可以与同事共享书签。

到目前为止,链接到Google书签共享后,Google App用户将无法共享书签或书签列表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.