Як можна видалити всю історію веб-пошуку, яка відповідає конкретному запиту в Google Chrome


77

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


В Інтернеті Google можна вибрати всі елементи пошуку. Цікаво, чи можна синхронізувати історію веб-пошуку Google із історією веб-переглядача Chrome.
Андерсон Грін

Існує розширення під назвою "Оновлення веб-історії Google". Здається, що це розширення дозволяє веб-історії Google працювати в Google Chrome.
Андерсон Грін

3
@AndersonGreen Чи можете ви оновити прийняту відповідь на superuser.com/a/791728/84229 від Fabricio PH. Це оригінальна правильна відповідь. На даний момент прийнятий відповідь просто скопіював правильну відповідь, не присвоюючи жодного кредиту. Тепер він повернений до початкової версії.
користувач

3
@AndersonGreen Ви повинні вибрати Pooya «S , як правильну відповідь, це найпростіший, самий швидкий спосіб зробити це. Плюс до цього, Фабріціо робить свою рекламу, яка не є повною.
LasagnaAndroid

Щоб зробити це швидко: знайдіть, а потім натисніть "ctrl + a", щоб вибрати всі результати
wuppi

Відповіді:


60

Оновити січень 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: // історія замість "chrome: // history-frame, тому він не працював для мене. Він добре працює всередині кадру.
dinesh ygv

2
Це чудово! Спочатку я запустив її в іншу вкладку, яка не працювала (заднім числом, з логічно досяжних причин). Тому я знову відкрила консоль на тій же вкладці, що і chrome: // history-frame, і все це спрацювало.
Джеймсон

1
дуже чисте і просте рішення
danboh

1
Це рішення застаріле: просто натисніть "ctrl + a"
wuppi

125

Це просто і легко.

Шукайте те, що ви хочете видалити. Виберіть перший. Тепер перейдіть до останнього результату. Натисніть shiftі виберіть останню. Тепер всі сірники вибрані, і ви можете їх видалити разом.


У деяких випадках видалення адреси з результатів історії недостатньо для того, щоб зупинити цю адресу в автоматичних пропозиціях рядка URL-адреси.

У такому випадку відвідайте тут: https://superuser.com/a/273280/121184


1
Більш детальна інформація тут: superuser.com/a/747816/85129
Anderson Green

2
Або ви можете скористатися ярликом хакера, дивіться мою відповідь нижче;)
Fabricio PH

4
@AndersonGreen Це правильна відповідь, а не Fabricio.
LasagnaAndroid

Це не очевидно. Я очікую, що текст буде вибраний.
dinesh ygv

1
Один з відповідей далі висвітлює і це (виявив це після розміщення мого коментаря)
wuppi

15

Для буквальних значень "запиту" ...

Ви навіть можете запитувати історію Chrome за допомогою SQL. ( 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

Там ви знайдете файл "Історія". Це файл SQLite3, і щоб ним маніпулювати, Chrome потрібно закрити . Якщо ви зіпсуєте це, видаліть файл історії та почніть заново - це так, як ніби ви очистили всю історію Chrome.

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

У таблиці URL-адрес ви знайдете відвідані URL-адреси. Наприклад, я можу запустити запит:

SELECT * FROM urls WHERE url LIKE '%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).

Коли ви закінчите, якщо потрібно, перейменуйте файл у "Історію".

Автоматизація: санітарія одним клацанням миші

Вам потрібна утиліта 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 інші файли, ніж Історія, один з яких названий Cookies ... :-)

Розширене покриття доріжок

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

Це може стати в нагоді в тих випадках, коли санітарна перевірка сеансу браузера призведе до появи малоймовірної картини того, що хтось дуже довго загляне в порожнє вікно браузера, а переважна якась холоста навігація. Звичайно, це передбачає, що ніхто не помічає, що кожен день існує абсолютно один і той же навігаційний «шаблон» .


Команда була б "ВІДКРИТИ з URL ..."
Anwar

3

Утримуючи клавішу shift і клацнувши на першій прапорці URL-адреси, а потім прокручуючи вниз до останнього. Це вказує google вибрати всі повідомлення між ними. Потім ви натискаєте "delete", і історія Voila пішла для вказаної конкретної URL-адреси


Ласкаво просимо до SuperUser Meron. Хоча це може бути дійсним, воно дублює інформацію, розміщену щонайменше у двох інших відповідях.
bertieb

2

Щоб додати до awnser Fabricio PH, це повинно бути очистити всі сторінки результатів для даного пошуку на chrome: // історія-кадр сторінки при вставці в консоль 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

Сумно в тому, що я втрачаю відповідь на це: p
Стівен Руз

Розширення не потрібно, перевірити мою відповідь :)
Fabricio PH

1

Просто використовуйте Chrome із URL: chrome: // history / # e = 1 & p = 0

Можливо, вам доведеться скопіювати / вставити його в панель URL.


1

На панелі Chrome спробуйте знайти предмет історії, який потрібно видалити. Після того, як він з’явиться в результатах, прокрутіть до нього за допомогою клавіш зі стрілками (навіть якщо це перший елемент у списку) і натисніть Shift + Delete.


1

Якщо ви натрапили на цю тему з google, є більш простий спосіб видалити кілька елементів зараз.

  • Перейдіть на сторінку https://myactivity.google.com/myactivity?product=6
  • Шукайте щось
  • Клацніть на меню 3 крапки у вікні пошуку
  • Натисніть "Видалити все"
  • ???
  • Прибуток

цей метод не працює
Woeitg

1

Введіть URL-адресу, який потрібно видалити, на вкладці історії, як на скріншоті нижче, перемкніть консоль розробника (mac: opt + cms + i) та виберіть <iron-listелемент. Потім перемкніть консоль js (esc) і введіть наступний код у консолі:

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

Він повинен вибрати всі видимі елементи. Клацніть на видалити та повторюйте, поки список не буде порожнім або хром не видасть дивну помилку.

вкладка історії


1

Ви можете відкрити меню Chrome - а потім перейти до історії - якщо вам потрібно видалити всі відвідування певного сайту, щоб ви ввели потрібне подане ім’я домену або натиснули три крапки праворуч від потрібного домену, якщо знайшли це вручну та виберіть усі входи, пов'язані з цим доменом - натисніть очистити історію. Можливо, ви можете знайти більше інформації, що стосується вашого питання, тут rocketfiles.com


0

Використовуйте це розширення в Google Chrome: Календар історії

Це саме те, що я шукав ... це робить видалення історії тощо, як firefox, тобто швидко і гладко. Якщо у вас є понад 2000 знаків історії для таких сайтів, як amazon.com, переглядач історії хромографії Google буде віком (перейти сторінку за сторінкою), але у вікні історії Firefox (або за допомогою вищевказаного хрому extn) ви можете вибрати всі 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. Затримайте зміну та натисніть на останній прапорець.
  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()
}

Помістіть його в хромовану консоль браузера одну сторінку історії FRAME . Не звичайна історія, але історія 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: // історія, шукайте, що ви хочете, відкрийте консоль 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.