Как я могу поделиться своими записями в поисковой системе Google Chrome?


31

Я создал несколько поисковых записей в Google Chrome, используя «Редактировать поисковые системы».

Как я могу поделиться некоторыми из этих записей с моими коллегами?


Это такой замечательный вопрос. Я нашел ludovic.chabant.com/devblog/2010/12/29/… но не хочу беспокоиться об этом, так как это с 2010-2011. От 5 до 6 лет в интернете - это вечность. Мне бы хотелось, чтобы был удобный (обновленный) способ обмена данными между учетными записями Google и профилями в рамках одной и той же установки Chrome.
Райан

Ответы:


6

Вот одна команда для экспорта ваших поисковых систем Chrome как CSV на Linux:

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путь на тот, что на вашей машине, как описано выше.


Отлично сработало для меня! И я хотел бы дать плагин для WSL в Windows 10, который по сути делает его родным для Windows решением. Вы также поделитесь командой для импорта?
tbc0

1
@ tbc0 Я также добавил инструкции по импорту. Я не тестировал WSL, но теоретически он должен работать ...
Уильям Казарин

Возможно, вам придется обращаться с 'персонажем. Вы можете добавить это в свой awk function esc(s){gsub("\x27","\x27\x27",s);return s}за $ 1 и $ 2 ====> esc ($ 1), esc ($ 2)
Измир Рамирес

6

Вот простое решение для экспорта и импорта настроек поисковой системы Chrome без использования каких-либо внешних инструментов или редактирования реестра:

  1. Откройте страницу настроек поисковой системы в Chrome ( chrome://settings/searchEngines).
  2. Откройте Chrome Developer Tools.
    • Ярлык: F12 или Ctrl + Shift + I (в Windows ярлыки на других платформах могут отличаться).
    • Ручная навигация: трехточечное меню в правом верхнем углу > Дополнительные инструменты > Инструменты разработчика .
  3. Нажмите Консоль в верхней строке меню Chrome Developer Tools.
  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]);
  });
}());

Заметки

  • Я тестировал скрипты в Chrome 75.0.3770.100 на Windows 8.1.
  • Скрипты экспортируют и импортируют поисковые системы только в разделе « Другие поисковые системы », но их можно легко настроить, чтобы включить поисковые системы по умолчанию.
  • Не пытайтесь распространять сценарии в виде букмарклетов, букмарклеты не выполняются по chrome://URL-адресам (уже там, сделали это).

Эти инструкции отлично сработали для меня, Chrome версии 74.
Джейсон

Блестящий, до сих пор работает на Windows v78.
junvar

4

Это возможно, но достаточно боли, которую вы не захотите.

  1. Найдите файл веб-данных в своем профиле Chrome. В Windows 7 это будет здесь: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Откройте файл с помощью программы SQLite, такой как SQLite Studio или sqlite, в Ubuntu (sudo apt-get install sqlite) и экспортируйте таблицу ключевых слов в SQLite Studio или выполните эту команду в Linux: sqlite3 "Web Data" ".dump keywords" > keywords.sql Диалог экспорта в SQLite Studio

  3. Пусть ваши коллеги импортируют ключевые слова, выполняя обратную процедуру.

Как я уже сказал, возможно, но больно.

Я написал анализатор Javascript для преобразования SQL из веб-данных в почти универсальный формат файлов закладок Netscape в HTML (иронично, что окончательным стандартом для этого формата, похоже, является Microsoft), если вы заинтересованы в переносе ключевых слов в другие браузеры, такие как Firefox. или опера.

Если вы заинтересованы в альтернативном решении, я создал 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 файла: Preferences, Web DataиWeb Data-journal

  3. Поместите эти 3 файла на целевой компьютер


работал для меня без "web data-jounal" (просто поместите оба файла в папку "default", перезапустите chrome)
JinSnow

1

Я написал скрипт на Python, который загружает определения из данных JSON. Теперь вы можете управлять своей конфигурацией в виде кода:

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

Это идемпотент (например, может быть запущен несколько раз; не будет добавлять дубликаты по ключевому слову).

Работает с 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
    

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.