Chrome 검색 엔진 항목을 공유하려면 어떻게해야합니까?


30

'검색 엔진 수정'을 사용하여 Chrome에서 일부 검색 항목을 만들었습니다.

이 항목 중 일부를 동료와 공유하려면 어떻게해야합니까?


이것은 좋은 질문입니다. ludovic.chabant.com/devblog/2010/12/29/…를 찾았 지만 2010-2011 년 이후로 시도하지 않아도됩니다. 인터넷에서 5-6 년은 영원합니다. 동일한 Chrome 설치 내에서 Google 계정과 프로필을 공유하는 편리한 (업데이트 된) 방법이 있었으면합니다.
Ryan

답변:


6

다음은 Linux에서 크롬 검색 엔진을 CSV로 내보내는 단일 명령입니다.

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의 스크립트를 테스트했습니다.
  • 스크립트는 Other Search Engines 섹션에서만 검색 엔진을 내보내고 가져 오지만 기본 검색 엔진도 포함하도록 쉽게 조정할 수 있습니다.
  • 스크립트를 북마크릿으로 배포하지 마십시오. 북마크릿은 chrome://URL에서 실행되지 않습니다 (있는 경우).

이 지침은 크롬 버전 74에 완벽하게 적용되었습니다.
Jason

훌륭하지만 여전히 v78 창에서 작동합니다.
junvar

4

가능하지만 원하지 않는 고통으로 충분합니다.

  1. Chrome 프로필에서 웹 데이터 파일을 찾으십시오. Windows 7에서는 다음과 같습니다. "%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 내보내기 대화 상자

  3. 이 과정과 반대로 키워드를 가져 오도록 동료에게 요청하십시오.

내가 말했듯이 가능하지만 고통 스럽습니다.

Firefox와 같은 다른 브라우저로 키워드를 가져 오는 데 관심이 있다면 웹 데이터의 SQL을 HTML 의 거의 보편적 인 Netscape Bookmark File Format (해당 형식의 결정적인 표준이 Microsoft 인 것처럼 보이지 않음) 으로 변환하는 Javascript 파서를 작성했습니다. 또는 오페라.

다른 솔루션에 관심이 있으시면 모든 브라우저에서 동일한 사용자 정의 검색 엔진 세트를 사용할 수 있도록 Shortmarks 를 작성 했으며 곧 다른 사용자와 공유 할 수있는 기능을 구현할 계획입니다. 며칠 안에 출시 될 릴리스에는 새 기능 테스트가 완료되는 즉시 위에서 언급 한 가져 오기 코드가 있습니다.


1
Google이 더 쉬워 졌으면 좋겠다고 생각했지만 개인적으로 "내가 시도하고 싶지 않은 고통이 충분하다"고 느끼지 않았습니다. Patrick의 답변은 저에게 매우 도움이되었습니다. superuser.com/a/688270/74576
Ryan

William의 답변 superuser.com/a/1350144/92959 는 매우 쉽습니다. Patrick의 답변은 William의 답변에 비해 매우 복잡하다는 것을 알았습니다.
tbc0

2

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 DataWeb Data-journal

  3. 이 3 개의 파일을 대상 시스템에 넣습니다.


"웹 데이터 공동"없이 나를 위해 일했다 (두 파일을 "기본"폴더에 드롭하고 크롬을 다시 시작하십시오)
JinSnow

1

JSON 데이터에서 정의를로드하는 Python 스크립트를 작성했습니다. 이제 구성을 코드로 관리 할 수 ​​있습니다.

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

이는 dem 등원입니다 (예 : 여러 번 실행할 수 있으며 키워드별로 중복 항목을 추가하지 않음).

python2 및 OSX와 함께 작동합니다. 다른 플랫폼을 지원하도록 수정할 수 있습니다.


0

저는 Windows 10을 사용하고 있으며 개인 크롬 프로필에서 회사 크롬 프로필로 검색 엔진을 복사하고 싶었습니다. 나는 다음을 수행했다.

  1. https://www.sqlite.org/download.html ( "사전 컴파일 된 바이너리"아래에 "SQLite 데이터베이스 파일 관리를위한 명령 줄 도구 번들"설명) 에서 SQLite를 다운로드했습니다 . c:\utils이미 내 경로에 압축을 풀었습니다.

  2. cmd.exe를 열었습니다.

  3. 디렉토리를 기본 (개인) 크롬 프로필로 변경했습니다.

    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.