Chrome에서 특정 검색어와 일치하는 모든 웹 기록을 삭제하는 방법


77

Chrome에서 특정 검색어 (예 : en.wikipedia.org)와 일치하는 모든 검색 기록을 삭제할 수 있습니까?


Google 웹 기록에서 검색시 모든 항목을 선택할 수 있습니다. Google 웹 기록을 Chrome의 웹 기록과 동기화 할 수 있는지 궁금합니다.
Anderson Green

'Google 웹 기록 용 업데이터'라는 확장 프로그램이 있습니다.이 확장 프로그램을 사용하면 Google 웹 기록을 Chrome에서 사용할 수 있습니다.
Anderson Green

3
@AndersonGreen 당신이 할 수있는 허용 대답 업데이트하십시오 수 superuser.com/a/791728/84229 에서를 Fabricio PH. 이것이 원래의 정답입니다. 현재 인정 된 사람은 크레딧을 제공하지 않고 정답을 간단하게 복사했습니다. 이제 원래 버전으로 되돌아갔습니다.
사용자

3
당신은 선택해야 @AndersonGreen Pooya 정답으로의를, 그것을 할 수있는 간단하고 빠른 방법입니다. 또한 Fabricio는 자신의 답변에 대해 자체 광고를하고 있습니다.
LasagnaAndroid

빠른 검색 : 검색 후 "ctrl + a"를 눌러 모든 결과 선택
wuppi

답변:


60

2019 년 1 월 업데이트

이제 Chrome은 키보드 단축키 CtrlA또는A


원래 답변

JavaScript 코드를 삽입 하는 해커 단축키를 사용할 수 있습니다 .

1 단계 Chrome 기록은 iFrame 내에서 쿼리되므로 chrome : // history-frame / (URL 복사 및 붙여 넣기) 을 방문해야합니다.

2 단계 검색 쿼리를 수행합니다.

3 단계 Chrome 콘솔 ( F12또는 CtrlShifti또는 i)을 열고 다음을 실행합니다.

var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; ++i) {
  if (inputs[i].type == "checkbox"){
    inputs[i].checked = true;
  }
}
document.getElementById("remove-selected").disabled = false

4 단계 ' 선택한 항목 제거 '버튼을 누릅니다.

실제로 이것은 현재 페이지의 요소를 삭제합니다. 나는 그것을 확장하려고 시도 할 수 있지만 좋은 출발점입니다. 내 블로그에서 전체 기사 를 읽으십시오 .


3
더 이상 작동하지 않습니다. document.getElementsByTagName ( 'input')이 빈 배열을 반환합니다.
dinesh ygv

2
@FabricioPH "chrome : // history-frame"대신 chrome : // history에서 스크립트를 실행했습니다. 이것이 나를 위해 작동하지 않는 이유입니다. 프레임 내에서 잘 작동합니다.
dinesh ygv

2
대단해! 처음에는 논리적으로 달성 할 수없는 다른 탭에서 작동했습니다 (후 시적으로 논리적으로 달성 할 수있는 이유로). 그래서 chrome : // history-frame과 동일한 탭에서 콘솔을 다시 열었고 모두 작동했습니다.
Jameson

1
매우 깨끗하고 쉬운 솔루션
danboh

1
이 솔루션은 구식입니다. 단순히 "ctrl + a"를 누르십시오
wuppi

126

간단하고 쉽습니다.

제거 할 대상을 검색하십시오. 첫 번째를 선택하십시오. 이제 최신 결과로 스크롤하십시오. 을 누르고 shift최신 항목을 선택하십시오. 이제 모든 일치 항목이 선택되었으며 함께 제거 할 수 있습니다.


경우에 따라 기록 결과에서 주소를 삭제하는 것만으로는 해당 주소가 URL 표시 줄 자동 제안에 표시되지 않을 수 없습니다.

이 경우 여기를 방문하십시오 : https://superuser.com/a/273280/121184


1
자세한 정보는 여기에 있습니다 : superuser.com/a/747816/85129
Anderson Green

2
또는 해커 단축키를 사용할 수 있습니다. 아래 내 답변을 참조하십시오.)
Fabricio PH

5
@AndersonGreen 이것은 Fabricio가 아닌 정답입니다.
LasagnaAndroid

이것은 분명하지 않습니다. 텍스트가 선택 될 것으로 기대합니다.
dinesh ygv

1
답변 중 하나가 더 아래 내용을 다룹니다 (내 의견을
게시

15

들어 문자 "쿼리"의 값을 ...

SQL을 사용하여 Chrome 기록을 쿼리 할 수도 있습니다. ( Firefox도 : 아래를 참조하십시오. 물론, 적절한 파일 경로를 변경해야합니다 ).

우선 Chrome 기록 파일을 찾아야합니다. 이것은 내 시스템에서

C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default

더 일반적으로 번역해야하는

<USER FOLDER>\Local Settings\Application Data\Google\Chrome\User Data\Default

여기에는 "History"파일이 있습니다. SQLite3 파일 이며이를 조작하려면 Chrome을 닫아야 합니다. 엉망인 경우 기록 파일을 삭제하고 새로 시작하십시오. 마치 전체 Chrome 기록을 지우는 것과 같습니다.

그런 다음 파일 이름을 바꾸고 Windows에서 SQLiteMan (또는 다른 SQLite3 편집기)을 History.sqlite3설치 하고 파일을 두 번 클릭하면 제안이 트리거 될 있습니다) 파일을 엽니 다 ( 일부 유틸리티의 이름을 바꿀 필요가 없습니다) 이름을 바꾸지 말고 먼저 작업을 저장 하십시오.

URLS 테이블에는 방문한 URL이 있습니다. 예를 들어 쿼리를 실행할 수 있습니다.

SELECT * FROM urls WHERE url LIKE '%meetup%';

내가 방문한 URL의 호스트 또는 경로 이름 부분에서 'meetup'을 모두 보려면 또는 SQL 구문을 준수하는 한 pr0n 또는 ...를 검색 할 수 있습니다 .

다른 정보 (예 : 마지막 방문 시간)를 사용하여 쿼리를 실행할 수도 있습니다. 날짜를 Chrome 시간 으로 변환해야한다는 것을 기억하십시오 . 이는 1601 년 1 월 1 일 부터 경과 한 마이크로 초 수입니다 . 유닉스 박스에서 타이핑 date +%s하면 초 수를 알려줍니다. 백만을 곱하면 11644473600을 더하면됩니다.

예를 들어 2013 년 10 월 1 일 이후의 방문을 선택하십시오.

SELECT * FROM urls WHERE ((last_visit_time/1000000)-11644473600) - 
    strftime('%s', '2013-10-01 00:00:00') > 0;

삭제하려면 단지 대신 SELECT *DELETE쿼리를 실행하기 위해 F9 키를 누릅니다.

NOW()현재 날짜와 다른 SQLite 구문 대신 사용할 수 있습니다 .

( '아카이브 기록'파일에는 Chrome에서 보관 한 마지막 기록이 있습니다.)

완료되면 필요한 경우 파일 이름을 "History"로 다시 바꾸십시오.

자동화 : 원 클릭 살균

당신은 같은 명령 줄 SQLite는 유틸리티가 필요 sqlite3하거나 sql3tool. 그런 다음 스크립트 또는 배치 파일을 작성하고 적절한 경로로 아래 코드를 수정하십시오 ( 기록을 그대로 유지하고 싶지 않습니까?).

# ENSURE CHROME IS CLOSED (pskill by SysInternals might be useful)
echo "DELETE * FROM urls WHERE url LIKE '%facebook%' OR url LIKE '%twitter%';" | sql3tool "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History"
echo "DELETE * FROM urls WHERE url LIKE '%porn%' OR url LIKE '%my-employer-is-a-moron%';" | sql3tool "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History"
echo "DELETE * FROM urls WHERE url LIKE ..."

만이 삭제됩니다 기억 당신의 역사를 당신의 크롬의 인스턴스입니다. 예를 들어 프록시를 사용하고 해당 프록시가 로그를 유지하는 경우 해당 URL을 여전히 로그에서 사용할 수 있습니다 .

업데이트 : 또한 파일에 명시적이고 알려진 확장명을 필요로하는 두뇌 교착 상태의 SQL 도구를 사용하는 경우 작업을 시작하기 전에 적절한 RENAME을 수행하고 작업을 다시 수행하려면 다른 RENAME을 수행해야합니다 ve 완료 :

REN "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History" "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History.sqlite3"
echo "DELETE * FROM urls WHERE url LIKE '%facebook%' OR url LIKE '%twitter%';" | sql3tool "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History.sqlite3"
REN "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History.sqlite3" "C:\Documents and Settings\Leonardo Serni\Impostazioni locali\Dati applicazioni\Google\Chrome\User Data\Default\History"

어쨌든,이 작업이 완료되면 스크립트 아이콘을 두 번 클릭하고 presto !, Chrome 기록이 삭제 됩니다. Firefox에서도 작동합니다. 타임 스탬프는 다른 시간 참조 프레임에있을 수 있습니다 (아마도 평범한 유닉스). 뛰어 들기 전에 물을 확인하십시오.

쿠키 청소는 어떻습니까?

History 대신 쿠키에 대해 동일한 작업을 수행 할 수 있습니다.

그러나 Chrome 데이터 디렉토리에서 History 이외의 파일 중 하나는 Cookies ... :-) 라는 것을 알 수 있습니다 .

고급 트랙 커버링

위의 SQL 트릭은 삭제에만 국한되지 않습니다. UPDATE명령을 사용하여 항목을 수정할 수 있습니다 . 불필요한 항목 을 삭제 한 후 INSERT적절한 시간과 날짜 매크로를 사용 하여 Chrome이 실제로 방문하지 않은 URL을 방문했거나 특정 시간과 날짜에 방문하지 않은 URL을 믿게 할 수 있습니다.

브라우저 세션을 삭제하면 누군가가 빈 브라우저 창을 아주 오랫동안 응시할 가능성이 거의없는 경우에 유용 할 수 있으며, 어떤 종류의 유휴 탐색이 바람직합니다. 물론 이것은 매일 정확히 동일한 탐색 '템플릿' 이 있다는 것을 아무도 알지 못한다고 가정합니다 .


명령은 "URL에서 삭제 ..."
Anwar

3

Shift 키를 누른 상태에서 첫 번째 URL 확인란을 클릭 한 다음 마지막 URL로 스크롤합니다. 이것은 구글에게 사이에 모든 게시물을 선택하도록 지시합니다. 그런 다음 "삭제"를 누르면 특정 URL에 대한 Voila 기록이 사라집니다.


수퍼 유저 Meron에 오신 것을 환영합니다. 이것이 유효 할 수도 있지만, 적어도 두 개의 다른 답변에 게시 된 정보를 복제합니다.
bertieb

2

Fabricio PH의 어 저스터에 추가하려면 devtools 콘솔에 붙여 넣을 때 chrome : // history-frame 페이지 에서 주어진 검색에 대한 모든 결과 페이지가 지워 져야합니다 .

var clearHistoryPage, historyInterval;

historyInterval = null;

clearHistoryPage = function() {
  var i, input, inputs, len, spinner;

  // If spinner is visible a new page is still loading
  spinner = document.getElementById('loading-spinner');
  if (!spinner.hasAttribute('hidden')) {
    console.log("Waiting on load");
    return;
  }

  inputs = document.getElementsByTagName('input');
  // When no history is present 5 inputs are still present on the history frame page
  if (inputs.length <= 5) {
    console.log("Found 5 or less inputs, stopping");
    clearInterval(historyInterval);
    return;
  }

  console.log("FOUND " + inputs.length + " results, clearing");
  for (i = 0, len = inputs.length; i < len; i++) {
    input = inputs[i];
    if (input.type === 'checkbox') {
      input.checked = true;
    }
  }
  document.getElementById('remove-selected').disabled = false;
  document.getElementById('remove-selected').click();
  document.getElementById('alertOverlayOk').click();
};

historyInterval = window.setInterval(clearHistoryPage, 5000);

2

chrome : // history 또는 chrome : // history-frame을 방문하십시오. 페이지에서 검색을 시작할 수 있으며 모든 결과가 나열되면 단순히 표시된 CTRL + A모든 항목을 선택하기 위해 누르십시오 . 다시 누르면 모든 항목이 선택 해제됩니다.

선택한 항목으로 DEL키 를 통해 간단히 삭제하십시오 .


1

아니요, 현재 Chrome 자체에서 지원되지 않습니다.

그러나 확장 프로그램은 기록 데이터에 대한 액세스를 요청할 수 있습니다. 따라서 확장 기능이 필요를 충족시킬 수 있습니다. 나는 그러한 확장을 스스로 알지 못하지만 작은 검색으로 이것을 찾았습니다.

https://chrome.google.com/webstore/detail/gjieilkfnnjoihjjonajndjldjoagffm

아마도 그 확장은 당신이 요청한 것을 할 수 있습니다.


2
이 답변은 구식입니다- 이것 또는 이 것을보십시오
Garrulinae

나도 그것을 삭제할 수 없습니다, 죄송합니다
Steven Roose

괜찮아요. 앞으로 시청자들을 위해 지적하고 있습니다.
Garrulinae

슬픈 것은 내가 이것에 대한 담당자를 잃는다는 것입니다 : p
Steven Roose

아무 확장 필요는 내 대답 : 확인하지
파브 PH

1

URL과 함께 Chrome을 사용하십시오. chrome : // history / # e = 1 & p = 0

URL 표시 줄에 복사 / 붙여 넣기해야 할 수도 있습니다.


1

Chrome 바에서 삭제하려는 기록 항목을 검색해보십시오. 결과에 표시되면 목록에서 첫 번째 항목이더라도 화살표 키를 사용하여 아래로 스크롤하고 Shift + Delete를 누릅니다.



1

아래 스크린 샷과 같이 기록 탭에서 제거하려는 URL을 입력하고 개발자 콘솔 (mac : opt + cms + i)을 전환하고 <iron-list요소를 선택하십시오 . 그런 다음 js console (esc)을 토글하고 콘솔에 다음 코드를 입력하십시오.

$0.querySelectorAll('history-item').forEach(_ => _.root.querySelectorAll('cr-checkbox').forEach(_ => _.click()))

보이는 모든 요소를 ​​선택해야합니다. 삭제를 클릭하고 목록이 비어 있거나 크롬에 이상한 오류가 발생할 때까지 반복하십시오.

기록 탭


1

Chrome 메뉴를 연 다음 방문 기록으로 이동할 수 있습니다. 특정 사이트에 대한 모든 방문을 삭제해야하는 경우 도메인 이름을 필요한 파일에 넣거나 필요한 경우 오른쪽에서 세 개의 점을 누릅니다. 수동으로 하고이 도메인과 관련된 모든 입력을 선택하십시오-클린 기록을 누르십시오. 여기에서 질문과 관련된 추가 정보를 찾을 수 있습니다. rocketfiles.com


0

Chrome에서이 확장 프로그램 사용 : 기록 캘린더

정확히 내가 찾던 것은 ... 파이어 폭스처럼 기록 삭제 등을 빠르고 부드럽게 만듭니다. amazon.com과 같은 사이트에 대해 2000 개가 넘는 히스토리 마크가있는 경우 Google 크롬 히스토리 뷰어는 페이지 단위로 이동하지만 파이어 폭스 히스토리 창 (또는 위에서 언급 한 크롬 익스텐트 사용)에서는 2000 개를 모두 선택하고 삭제할 수 있습니다. 한 번에


그것은 링크에 404를 표시합니다
Anwar

0
  • chrome:history삭제하려는 웹 사이트를 열고 검색하십시오.
  • 로 크롬 콘솔을 엽니 다 ctrl-shift-j.

  • 해당되는 경우 콘솔 바로 위의 드롭 다운이 읽히지 history (history-frame)않아야합니다 top,.

  • 콘솔에서 다음 코드를 실행하십시오.

$$('input[type=checkbox]').forEach(el => el.checked = true); $("remove-selected").disabled = false;


0

Fabricio의 코드가 작동하지 않는 경우이 코드가 작동하고 추가로 "선택된 항목 제거"단추를 클릭하면 확인 대화 상자를 클릭하기 만하면됩니다.

document.querySelectorAll('.entry-box input[type="checkbox"]').forEach(function(input) {
  input.checked = true;
});

document.getElementById("remove-selected").disabled = false
document.getElementById("remove-selected").click()

0
  1. 첫 번째 확인란을 클릭하십시오.
  2. 페이지 맨 아래로 스크롤하십시오.
  3. Shift 키를 누른 상태에서 마지막 확인란을 클릭하십시오.
  4. 모든 확인란이 선택됩니다. "선택한 항목 제거"버튼이있는 맨 위로 스크롤하십시오.
  5. 버튼을 클릭하십시오. 선택한 항목이 삭제됩니다 :)

슈퍼 유저에 오신 것을 환영합니다. 나는 이런 질문들이 대답하기 가장 좋은 것이 아니라고 제안합니다! 다른 답변에는 이미 방법을 포함하여이를 수행하는 방법에 대한 옵션이 있습니다.
Lister

0

다음을 사용하십시오.

function hasText(a){
    if(a.innerText){
        return true}
    else{
        return false}
}

function isCheckbox(element){
    if(element.type=='checkbox'){
        return true
    }
}

function removeItemsofQuery(query){
    var element=document.getElementsByClassName('entry-box')
    var checkbox=[]
    var titles=[]
    for(i=0; i<element.length; i++){
        var children=element[i].children
        for(j=0; j<children.length; j++){
            if(hasText(element[i].children[j])==true && element[i].children[j].className!="time" ){
                var ds=element[i].children[j].innerText
                titles.push(ds)
            }
            if (isCheckbox(element[i].children[j])==true){
                var hg=element[i].children[j]
                checkbox.push(hg)
            }
        }
        }

    for(g=0; g<element.length; g++){
        var queries=titles[g].indexOf(query)
        if(queries>0){
            checkbox[g].checked=true
        }
    }
    var RS=document.getElementById('remove-selected')
    RS.disabled=false
    RS.click()
}

크롬 브라우저 콘솔을 하나의 역사로 넣어 프레임 페이지입니다. 규칙적인 역사는 아니지만 역사 FRAME . 그런 다음 함수를 호출하고 removeItemsofQuery검색 할 용어를 입력하고 인수로 제거하십시오. enter를 누르고 최종 제거 버튼을 누릅니다. 그런 다음 끝났습니다. 축하합니다.


0

검색하려는 단어를 쓰기 시작하십시오. 원하지 않는 단어가 나타나면 위 / 아래 화살표를 사용하여 해당 단어로 이동 한 다음 Shift + Delete를 누르십시오.


0
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
async function selectAll() {
    var count = 0;
    var inputs = document.getElementById("history-app").shadowRoot.getElementById("history").shadowRoot.getElementById("infinite-list").children;

    for (var i = 1; i < inputs.length; ++i) {

        if (inputs[i].shadowRoot.getElementById("checkbox").getAttribute('aria-checked') == "false") {
            inputs[i].shadowRoot.getElementById("checkbox").click();
            count++;
            await sleep(20);
        }
    }
    if (c > 0) selectAll()
}
selectAll()

1
이것이 어떻게 질문에 대답하는지 (영어 ) 설명하십시오.
G-Man

chrome : // history로 이동하여 원하는 것을 검색하고 Chrome 콘솔을 열고 위 코드를 복사하여 붙여 넣어 모두 선택하십시오.
konstruktor

0
// Tested on Chrome Version 72.0.3626.119 (Official Build) (64-bit)
// 1) Open Chrome browser history.
// 2) Search for specific history you want to delete.
// 3) Cut-and-paste the code below in the Chrome Browser console.
// Enjoy!

(function (){
let historyApp = document.getElementById("history-app");
historyApp.items[0].selectAllItems();

// Delete history with a popup confirmation prompt
historyApp.deleteSelected();

// Delete with no prompt
// historyApp.items[0].deleteSelected_()  

})();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.