Как я могу удалить всю историю веб-поиска, которая соответствует определенному запросу в Google Chrome


74

Можно ли в Google Chrome удалить всю историю поиска, которая соответствует определенному запросу (например, en.wikipedia.org)?


Можно выбрать все элементы поиска в истории веб-поиска Google. Интересно, можно ли синхронизировать историю веб-поиска Google с историей веб-сайта Chrome?
Андерсон Грин

Существует расширение, называемое «Updater for Google Web History» - похоже, это расширение позволяет Google Web History работать в Google Chrome.
Андерсон Грин

3
@AndersonGreen Не могли бы вы обновить принятый ответ на superuser.com/a/791728/84229 от Fabricio PH. Это оригинальный правильный ответ. В настоящее время принятый просто скопировал правильный ответ, не приписывая кредит. Теперь он был возвращен к своей первоначальной версии.
пользователь

3
@AndersonGreen Вы должны выбрать Pooya как правильный ответ, это самый простой и быстрый способ сделать это. Кроме того, Фабрицио делает некоторую саморекламу в своем ответе, который не завершен.
Лазанья Android

Чтобы сделать это быстро: поиск, а затем нажмите «Ctrl +
A

Ответы:


56

Обновление январь 2019

Теперь 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 вместо "chrome: // history-frame, поэтому он не работал для меня. Он хорошо работает внутри фрейма.
dinesh ygv

2
Это замечательно! Сначала я запустил его на другой вкладке, которая не работала (задним числом, по логически достижимым причинам). Поэтому я снова открыл консоль на той же вкладке, что и chrome: // history-frame, и все заработало.
Джеймсон

1
очень чистое и простое решение
Danboh

1
Это решение устарело: просто нажмите «Ctrl +
A

124

Это просто и легко.

Ищите то, что вы хотите удалить. Выберите первый. Теперь перейдите к последнему результату. Нажмите shiftи выберите последний. Теперь все совпадения выбраны, и вы можете удалить их вместе.


В некоторых случаях удаление адреса из результатов истории недостаточно для того, чтобы этот адрес не появлялся в подсказках по автоматическому отображению панели URL.

В этом случае посетите здесь: https://superuser.com/a/273280/121184


1
Дополнительная информация здесь: superuser.com/a/747816/85129
Андерсон Грин

2
Или вы можете воспользоваться хакерским ярлыком, см. Мой ответ ниже;)
Fabricio PH

4
@AndersonGreen Это правильный ответ, а не Фабрицио.
Лазанья Android

Этот не очевиден. Я ожидаю, что текст будет выбран.
Dinesh YGV

1
один из ответов ниже охватывает это тоже (узнал об этом после размещения моего комментария)
wuppi

15

Для буквальных значений «запроса» ...

Вы даже можете запросить историю Chrome, используя SQL. ( Firefox тоже: см. Ниже. Конечно, необходимо изменить соответствующий путь к файлу ).

Прежде всего, вам нужно найти файл Chrome History. Это в моей системе, в

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

Там вы найдете файл «История». Это файл SQLite3, и чтобы манипулировать им, Chrome должен быть закрыт . Если вы все испортили, удалите файл истории и начните заново - все равно, что вы очистили всю историю Chrome.

Затем переименуйте файл History.sqlite3и установите SQLiteMan (или любой другой редактор SQLite3 - в Windows двойного щелчка по файлу может быть достаточно, чтобы вызвать предложение), затем откройте файл ( хотя некоторые утилиты могут не нуждаться в переименовании. попробуйте сначала без переименования, чтобы сохранить работу ).

В таблице URLS вы найдете посещенные вами URL. Например, я могу выполнить запрос:

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

чтобы просмотреть все вхождения 'meetup' в части хоста или пути к URL-адресам, которые я посетил. Или я могу искать pr0n , или ... что угодно, если я придерживаюсь синтаксиса SQL .

Вы даже можете использовать другую информацию для запуска запроса, например, время последнего посещения. Только помните, что вам нужно преобразовать даты в время Chrome , которое является числом микросекунд, прошедших с 1 января, года нашего Господа 1601 года . На Unix-поле, набрав date +%s, скажет вам количество секунд; умножьте на миллион, добавьте 11644473600, и все готово.

Например, выберите посещения после 1 октября 2013 года:

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 ..."

Только помните, что это стирает вашу историю на вашем экземпляре Chrome. Если, например, вы используете прокси-сервер и этот прокси-сервер ведет журналы, все эти URL-адреса будут по-прежнему доступны в журналах .

ОБНОВЛЕНИЕ : Кроме того, если вы используете какой-то мозговой инструмент SQL, для которого требуется, чтобы файл имел явное и известное расширение, вам придется выполнить соответствующее RENAME перед началом операций, а другое - чтобы восстановить порядок, когда вы ' мы закончили:

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"

В любом случае, как только это будет сделано, дважды щелкните по значку скрипта и «Привет!», Ваша история Chrome очищена . Он работает и с Firefox; однако его временные метки могут быть в какой-то другой системе отсчета времени (возможно, в простом Unix), поэтому проверяйте воду, прежде чем прыгать.

Как насчет очистки куки?

Возможно, вы захотите сделать то же самое с файлами cookie вместо истории.

Но вы заметили в каталоге данных Chrome другие файлы, кроме History, один из которых называется Cookies ... :-)

Усовершенствованное покрытие треков

Вышеприведенный трюк SQL не ограничивается удалением. Вы можете изменить записи с помощью UPDATEкоманды; и после удаления ненужных записей вы можете использовать INSERTсоответствующие макросы времени и даты, чтобы Chrome считал, что вы посетили некоторые URL-адреса, которые вы на самом деле не посещали или не посещали в какой-то момент времени и даты.

Это может пригодиться в тех случаях, когда дезинфекция сеанса в браузере может привести к тому, что маловероятно, что кто-то смотрит застекленным взглядом на пустое окно браузера в течение очень долгого времени, и предпочтительна какая-то неработающая навигация. Конечно, это предполагает, что никто не замечает, что каждый день существует один и тот же навигационный «шаблон» .


Команда будет «УДАЛИТЬ из URL ...»
Анвар

3

Удерживая клавишу shift и нажав на первый флажок URL, а затем прокрутите вниз до последнего. Это говорит Google, чтобы выбрать все сообщения между ними. Затем вы нажимаете "удалить", и история вуаля исчезла для этого конкретного URL.


Добро пожаловать в SuperUser Meron. Хотя это может быть действительным, оно дублирует информацию, размещенную как минимум в двух других ответах.
bertieb

2

Чтобы добавить в awnser Fabricio PH, необходимо очистить все страницы результатов для данного поиска на странице chrome: // history-frame при вставке в консоль devtools:

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

Я тоже не могу удалить его, извините
Стивен Руз

Это нормально - я просто указываю на это будущим зрителям.
Garrulinae

Печально то, что я теряю репутацию за это: р
Стивен Руз

Расширения не требуется, проверьте мой ответ :)
Fabricio PH

1

Просто используйте Chrome с URL: chrome: // history / # e = 1 & p = 0

Возможно, вам придется скопировать / вставить его в свой URL-бар.


1

В панели Chrome попробуйте найти элемент истории, который вы хотите удалить. Как только он появится в результатах, прокрутите его вниз с помощью клавиш со стрелками (даже если это первый элемент в списке) и нажмите Shift + Delete.


1

Если вы столкнулись с этой темой из Google, есть более простой способ удалить несколько элементов сейчас.


этот метод не работает
Woeitg

1

Введите URL-адрес, который вы хотите удалить, на вкладке истории, как показано на скриншоте ниже, переключите консоль разработчика (mac: opt + cms + i) и выберите <iron-listэлемент. Затем переключите консоль js (esc) и введите в консоли следующий код:

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

Следует выбрать все видимые элементы. Нажмите «Удалить» и повторяйте, пока список не станет пустым или хром не выдаст странную ошибку.

вкладка истории


0

Используйте это расширение в Google Chrome: календарь истории

Это именно то, что я искал ... это делает удаление истории и т.д., как Firefox, т.е. быстро и гладко. Если у вас есть более 2000 отметок истории для таких сайтов, как amazon.com, просмотрщик истории Google Chrome будет возрастать (переходить на страницу за страницей), но в окне истории Firefox (или с использованием вышеупомянутой Chrome Extn) вы можете выбрать все 2000 и удалить на одном дыхании


По этой ссылке он показывает 404
Anwar

0
  • Откройте chrome:historyи найдите веб-сайт (ы), которые вы хотите удалить.
  • Откройте консоль Chrome с помощью 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. Нажмите на кнопку. Выбранные элементы будут удалены :)

Добро пожаловать в супер пользователя. Я бы предположил, что на подобные вопросы не самый лучший ответ! В других ответах уже есть варианты того, как это сделать, включая ваш метод.
Листер

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

Поместите его в консоль браузера Chrome на странице истории FRAME . Не обычная история, а история FRAME . Затем вызовите функцию removeItemsofQueryи введите термин, который вы хотите найти, и удалите его в качестве аргумента. Нажмите ввод и нажмите кнопку окончательного удаления. Тогда все готово. Поздравляю.


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_()  

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