Skip to content

Latest commit

 

History

History
283 lines (233 loc) · 20.4 KB

README-ko.md

File metadata and controls

283 lines (233 loc) · 20.4 KB

검색 엔진용 URL 수정기


목록:

소개

Tampermonkey 스크립트, Greasy Fork 에서 설치: 검색 엔진용 URL 수정기.

브라우저에 Tampermonkey 가 설치되어 있지 않다면, Chrome 웹 스토어 또는 Firefox 웹 스토어에서 설치할 수 있습니다.

제 스크립트가 유용했다면 GitHub 이나 Codeberg 에서 별표를 주세요! 감사합니다! 😘

이 Tampermonkey 스크립트는 검색 엔진의 검색 결과에서 URL 을 수정하여 대체 사이트로 리디렉션함으로써 검색 엔진 사용을 개선하고 더 맞춤화되고 효율적인 브라우징 경험을 가능하게 합니다. 또한 사용자만의 URL 수정 규칙을 스크립트에 추가할 수 있으며, 이 스크립트를 더 유용하게 만들기 위해 규칙을 커밋하는 것을 환영합니다.

URL 수정은 정규 표현식을 사용합니다.

URL 수정 없는 검색 결과:
img:searxng_search_result_example-with_modification
URL 수정 후 검색 결과:
img:searxng_search_result_example-with_modification

검색 엔진 지원

다른 검색 엔진을 지원하기 위해 코드에 DOM 선택자를 수동으로 추가할 수 있습니다.

검색 엔진 Bing 에서 검색 결과에 "https://www.bing.com/ck/a..." 리디렉션 링크가 나타난 경우, Bing 설정에서 "새 탭이나 창에서 링크 열기"를 비활성화하면 이를 제거할 수 있습니다.

Yahoo, Lycos, AlohaFind 와 같은 검색 엔진의 경우, 이 스크립트는 리디렉션 링크를 제거하고 실제 URL을 추출하는 기능을 지원합니다. 예를 들어, Yahoo 의 리디렉션 링크는 "https://r.search.yahoo.com/..." 입니다. 이 검색 엔진들을 사용하지 않는 경우, 리디렉션 링크 호환성 없이 URL 수정 규칙을 사용할 수 있습니다. 참고로, 모든 내장 RegEx URL 수정 규칙은 여기에서 볼 수 있습니다.

바이두의 경우, 스크립트는 텍스트 검색 결과의 리디렉션 링크를 제거할 수 있지만 이미지 및 비디오 결과에는 작동하지 않습니다. 이는 검색 결과의 DOM 요소에 명시적으로 표시된 원본 URL 링크를 추출하는 원리 때문입니다. 바이두는 일부 결과에 대해 원본 링크를 명시적으로 제공하지 않으므로, 그러한 종류의 결과에 대해서는 스크립트가 작동하지 않습니다. 참고로, Tampermonkey 스크립트 AC-baidu_RedirectRemove는 바이두의 모든 불필요한 리디렉션을 제거할 수 있습니다.

한 가지 부가 정보로, Kagi 는 내장된 URL 리다이렉션 기능이 있는 검색 엔진으로, 시도해보기 가치가 있습니다. 저는 Kagi 의 사용자이며 이 제품에 매우 만족하고 있으므로 여기에서 그들에게 소개합니다.

더 많은 검색 엔진 찾기:

내장 리디렉션

스크립트에 사용자 정의 리디렉션 규칙을 추가할 수 있습니다.

기타 개인정보 보호에 중점을 둔 대체 웹사이트 프런트엔드는 다음을 참조하세요:

서비스 제공업체:

참고로, 우리가 직접 정규 표현식 규칙을 작성하는 대신, 프라이버시 지향적인 대체 프론트엔드로 자동으로 리디렉션하는 Farside 를 사용할 수 있습니다.

그러나 이 방법은 일치하는 URL 에 대한 미세한 제어를 지원하지 않으며, Farside 를 통한 리디렉션이 필요하기 때문에 실제로 매우 느립니다. 이 방법을 사용하고 싶다면, urlModificationRules 에서 해당 부분의 주석을 해제할 수 있습니다.

  • 포함 패턴 예시: ^(?:https?:\/\/)(?:[\w-]+\.|)((?:imdb|imgur|instagram|medium|odysee|quora|reddit|tiktok|twitter|wikipedia|youtube)\.(?:[a-z]+).*)

  • 리디렉트 대상: https://farside.link/$1

  • 스크립트에 추가:

    const urlModificationRules = [
        {
            matchRegex: new RegExp(/^(?:https?:\/\/)(?:[\w-]+\.|)((?:imdb|imgur|instagram|medium|odysee|quora|reddit|tiktok|twitter|wikipedia|youtube)\.(?:[a-z]+).*)/),
            replaceWith: 'https://farside.link/$1'
        },
        // ...
    ];
  • 예시 URL: https://www.youtube.com/watch?v=abc123

  • 결과 URL: https://farside.link/youtube.com/watch?v=abc123

FYI, Redirector에서 farside 설정을 위한 위키: https://github.com/benbusby/farside/wiki/Browser-Extension


할 일

  1. 더 많은 검색 엔진에 대한 지원 추가.
  2. 코드를 읽고 수정하기 쉽도록 리팩토링.

위키

urlModificationRules

정규 표현식 을 사용한 URL 수정 규칙

변수 설명
matchRegex 원본 URL 과 일치하는 정규 표현식
replaceWith 대체를 위한 정규 표현식

selectorRules

검색 엔진 결과를 위한 DOM 요소 업데이트용 선택자 규칙

변수 설명
selector DOM 요소의 선택자
parentSelector 링크 요소와 텍스트 요소의 부모 요소에 대한 선택자
linkNodeSelector parentSelector 에 의해 지정된 요소 아래의 링크 요소에 대한 선택자
textNodeSelector parentSelector 에 의해 지정된 요소 아래의 텍스트 요소에 대한 선택자
updateChildText childSelector 에 의해 지정된 자식 요소의 내부 텍스트를 업데이트할지 여부의 플래그
childSelector selector 또는 textNodeSelector 에 의해 지정된 요소 아래의 자식 DOM 요소에 대한 선택자
updateTextWithoutOverwrite DOM 요소 아래의 다른 노드를 덮어쓰지 않고 textnode 를 업데이트할지 여부의 플래그
updateTextByOverwritecontainProtocol 도메인을 표시할 때 프로토콜 (예: https://) 을 포함할지 여부의 플래그
useTopLevelDomain URL 을 표시할 때 최상위 도메인을 사용할지 여부의 플래그
urlDisplayMethod 필수, URL 표시 방법
방법 1: 빵 부스러기 형식
방법 2: 전체 URL
방법 3: 프로토콜 없는 전체 URL
multiElementsForUrlDisplay 표시된 URL 이 여러 DOM 요소로 분리되어 있는지 여부의 플래그
방법 1: URL 부분이 병렬 요소로 분산됨
방법 2: URL 부분이 비병렬 요소로 분산됨
방법 3: 방법 2 와 동일하지만 원래 내용을 지우지 않고 요소를 업데이트함

searchEngines

사용자 정의 검색 엔진 도메인 목록

변수 설명
hosts 검색 엔진의 도메인
resultContainerSelectors 선택 사항, 검색 결과 컨테이너 DOM 설정, 동적 관찰 범위를 좁히기 위함
attribute <a> 요소에서 'href' 이외의 추가 URL 링크 속성을 지정합니다 (예: 'data-target')
모든 링크 속성이 'href'인 경우에는 이 부분을 지정할 필요가 없습니다