Làm cách nào tôi có thể chia sẻ các mục công cụ tìm kiếm Google Chrome của mình?


30

Tôi đã tạo một số mục tìm kiếm trong Google Chrome bằng cách 'Chỉnh sửa công cụ tìm kiếm'.

Làm thế nào tôi có thể chia sẻ một số các mục này với các đồng nghiệp của tôi?


Đây là một câu hỏi tuyệt vời. Tôi tìm thấy ludovic.chabant.com/devblog/2010/12/29/ trên nhưng không muốn thử dùng nó kể từ năm 2010-2011. 5 đến 6 năm trên internet là một sự vĩnh cửu. Tôi ước có một cách thuận tiện (cập nhật) để chia sẻ trên các tài khoản Google và trên các cấu hình trong cùng một cài đặt Chrome.
Ryan

Câu trả lời:


6

Đây là một lệnh duy nhất để xuất các công cụ tìm kiếm chrome của bạn dưới dạng CSV trên linux:

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

Bạn cần cài đặt sqlite3. Thay thế ~/.config/chromebằng đường dẫn Windows tương ứng nếu bạn đang ở trên Windows. Nên là một cái gì đó như%AppData%\Local\Google\Chrome\User Data

Xuất dưới dạng SQL để nhập lại ở nơi khác

Thay vì xuất sang CSV, bạn có thể xuất sang các câu lệnh chèn 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

Sau đó sao chép ~/search-engine-export.sqlsang máy khác và nhập bằng lệnh này:

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

Đảm bảo thay thế Web Datađường dẫn bằng đường dẫn trên máy của bạn như được mô tả ở trên.


Làm việc tuyệt vời cho tôi! Và tôi muốn cung cấp một plugin cho WSL trên Windows 10, về cơ bản làm cho nó trở thành một giải pháp gốc của Windows. Bạn cũng sẽ chia sẻ lệnh để nhập?
tbc0

1
@ tbc0 Tôi cũng đã thêm hướng dẫn nhập khẩu. Tôi chưa thử nghiệm trên WSL nhưng nó sẽ hoạt động trên lý thuyết ...
William Casarin

Bạn có thể phải xử lý ký tự '. Bạn có thể thêm cái này vào awk của mình function esc(s){gsub("\x27","\x27\x27",s);return s}với giá $ 1 và $ 2 ====> esc ($ 1), esc ($ 2)
Yzmir Ramirez

5

Đây là một giải pháp đơn giản để xuất và nhập cài đặt công cụ tìm kiếm Chrome mà không cần sử dụng bất kỳ công cụ bên ngoài hoặc chỉnh sửa sổ đăng ký nào:

  1. Mở trang Cài đặt Công cụ Tìm kiếm trong Chrome ( chrome://settings/searchEngines).
  2. Mở Công cụ dành cho nhà phát triển Chrome.
    • Phím tắt: F12 hoặc Ctrl + Shift + I (trên Windows, các phím tắt trên các nền tảng khác có thể khác nhau).
    • Điều hướng thủ công: Menu ba chấm ở góc trên bên phải > Công cụ khác > Công cụ dành cho nhà phát triển .
  3. Nhấp vào Bảng điều khiển trong thanh menu trên cùng của Công cụ dành cho nhà phát triển Chrome.
  4. Dán một trong các tập lệnh sau vào bàn điều khiển và nhấn Enter .

Để tải xuống tệp JSON có cài đặt công cụ tìm kiếm:

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

Để nhập cài đặt từ tệp JSON được tạo bằng tập lệnh ở trên:

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

Ghi chú

  • Tôi đã thử nghiệm các tập lệnh trong Chrome 75.0.3770.100 trên Windows 8.1.
  • Các kịch bản chỉ xuất và nhập tìm kiếm trong phần Công cụ tìm kiếm khác nhưng chúng có thể dễ dàng được điều chỉnh để bao gồm các công cụ tìm kiếm mặc định.
  • Đừng cố phân phối các tập lệnh dưới dạng bookmarklets, bookmarklets không thực thi trên chrome://URL (đã ở đó, đã hoàn thành việc đó).

Các hướng dẫn này hoạt động hoàn toàn tốt đối với tôi, phiên bản chrome 74.
Jason

Rực rỡ, vẫn hoạt động trên cửa sổ v78.
Junvar

4

Điều đó là có thể, nhưng nó đủ đau đớn mà bạn sẽ không muốn.

  1. Tìm tệp Dữ liệu Web trong hồ sơ Chrome của bạn. Trong Windows 7, nó sẽ ở đây: "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"

  2. Mở tệp bằng chương trình SQLite như SQLite Studio hoặc sqlite trong Ubuntu (sudo apt-get install sqlite) và xuất bảng từ khóa trong SQLite Studio hoặc chạy lệnh này trong Linux: sqlite3 "Web Data" ".dump keywords" > keywords.sql Hộp thoại xuất SQLite Studio

  3. Có đồng nghiệp của bạn nhập các từ khóa, làm ngược lại quá trình này.

Như tôi đã nói, có thể, nhưng đau đớn.

Tôi đã viết một trình phân tích cú pháp Javascript để chuyển đổi SQL từ Dữ liệu Web thành Định dạng tệp Bookmarkcape Netscape gần như phổ biến trong HTML (trớ trêu rằng tiêu chuẩn dứt khoát cho định dạng đó dường như là Microsoft) nếu bạn quan tâm đến việc đưa từ khóa vào các trình duyệt khác như Firefox hoặc Opera.

Nếu bạn quan tâm đến một giải pháp thay thế, tôi đã tạo Shortmark để cho phép bạn sử dụng cùng một bộ công cụ tìm kiếm tùy chỉnh trong bất kỳ trình duyệt nào và tôi dự định sẽ sớm thực hiện khả năng chia sẻ với người khác. Bản phát hành sắp tới trong một vài ngày sẽ có mã nhập mà tôi đã đề cập ở trên ngay sau khi tôi hoàn thành thử nghiệm các tính năng mới.


1
Mặc dù tôi ước Google làm cho nó dễ dàng hơn nhưng cá nhân tôi không cảm thấy "nó đủ đau đớn mà tôi sẽ không muốn thử". Câu trả lời của Patrick rất hữu ích cho tôi: superuser.com/a/688270/74576
Ryan

Câu trả lời của William superuser.com/a/1350144/92959 hoàn toàn dễ dàng. Tôi thấy câu trả lời của Patrick rất phức tạp so với William.
tbc0

2

Tôi đã làm theo để chia sẻ các mục công cụ tìm kiếm Google Chrome của tôi và nó hoạt động hoàn toàn tốt với tôi:

  1. WINDOWS XP : Truy cập C: \ Documents and Settings \ MyUserName \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default

    TRÊN WINDOWS 7 : Truy cập C: \ Users \ MyUserName \ AppData \ Local \ Google \ Chrome \ Dữ liệu người dùng \ Mặc định

  2. Sao chép những 3 file: Preferences, Web DataWeb Data-journal

  3. Đặt 3 tệp đó vào máy đích


làm việc cho tôi mà không có "dữ liệu web-jounal" (chỉ cần thả cả hai tệp vào thư mục "mặc định", khởi động lại chrome)
JinSnow

1

Tôi đã viết một kịch bản python tải định nghĩa từ dữ liệu JSON. Bây giờ bạn có thể quản lý cấu hình của mình dưới dạng mã:

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

Đây là idempotent (ví dụ: có thể được chạy nhiều lần; không thêm trùng lặp theo từ khóa).

Hoạt động với python2 và OSX. Có thể được sửa đổi để hỗ trợ các nền tảng khác.


0

Đối với tôi, tôi đang dùng Windows 10 và tôi muốn sao chép các công cụ tìm kiếm từ hồ sơ chrome cá nhân vào hồ sơ chrome của công ty. Tôi đã làm như sau:

  1. Tôi đã tải xuống SQLite từ https://www.sqlite.org/doad.html (trong "Binaries được biên dịch sẵn" với mô tả "Một gói các công cụ dòng lệnh để quản lý các tệp cơ sở dữ liệu SQLite"). Tôi đã giải nén nó đến c:\utilsđó đã có trong đường dẫn của tôi

  2. Tôi đã mở cmd.exe

  3. Tôi đã thay đổi thư mục thành hồ sơ chrome (cá nhân) mặc định của mình

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

  4. Tôi đã thoát hoàn toàn Chrome (ngay cả trong khay). Ngoài ra, giữ một bản sao của các hướng dẫn này (hoặc mở chúng trong một trình duyệt khác) vì bạn sẽ mất chúng.

  5. Tôi đã chạy như sau:

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

  6. Tôi đã thay đổi hồ sơ mới:

    cd "..\Profile 2\"

  7. Tôi chạy cái này:

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

    Tôi đã nhận được các lỗi sau, không sao:

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

Nếu bạn gặp nhiều lỗi hơn, điều đó có nghĩa là bạn đã thêm các công cụ tìm kiếm vào hồ sơ mới của mình. Xóa tất cả, bao gồm cả những cái mới vừa thêm và chạy lại bước này. Hoặc chỉnh sửa tệp SQL bằng tay.

  1. Tôi đã kích hoạt Chrome sao lưu và bây giờ từ khóa tìm kiếm của tôi hoạt động tốt.

0

Đây là cách tôi làm điều đó (tôi không nhớ nơi tôi tìm thấy nó).

  1. Tạo một kịch bản 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. Tạo một kịch bản 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. Làm cho chúng thực thi:

    chmod +x export_chrome_search_engines.sh import_chrome_search_engines.sh 
    
  4. Để xuất, tắt Chrome và chạy:

    ./export_chrome_search_engines.sh
    cp ~/.config/google-chrome/Default/keywords.sql /tmp/
    
  5. Để nhập, tắt Chrome và chạy:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.