Jak mogę usunąć całą historię online pasującą do określonego zapytania w Google Chrome

77

Czy w Google Chrome można usunąć całą historię wyszukiwania pasującą do określonego zapytania (na przykład en.wikipedia.org)?

Anderson Green
źródło
Możliwe jest wybranie wszystkich pozycji w wyszukiwaniu z Historii online Google. Zastanawiam się, czy można zsynchronizować Historię online Google z historią internetową Chrome.
Anderson Green,
Istnieje rozszerzenie o nazwie „Aktualizator do Historii online Google” - wygląda na to, że to rozszerzenie umożliwia działanie Historii online Google w przeglądarce Google Chrome.
Anderson Green,
3
@AndersonGreen Czy możesz zaktualizować zaakceptowaną odpowiedź na superuser.com/a/791728/84229 od Fabricio PH. To jest oryginalna poprawna odpowiedź. Aktualnie przyjęty po prostu skopiował właściwą odpowiedź, nie przypisując żadnego uznania. Teraz został przywrócony do oryginalnej wersji.
użytkownik
3
@AndersonGreen Powinieneś wybrać Pooya jako prawidłową odpowiedź, jest to najprostszy i najszybszy sposób na zrobienie tego. Plus, Fabricio robi własną reklamę na swojej odpowiedzi, co nie jest kompletne.
LasagnaAndroid
Aby przyspieszyć: wyszukaj, a następnie naciśnij „ctrl + a”, aby zaznaczyć wszystkie wyniki
wuppi

Odpowiedzi:

60

Zaktualizuj styczeń 2019 r

Teraz Chrome obsługuje skrót klawiszowy CtrlAlubA


Oryginalna odpowiedź

Możesz wziąć skrót hakera wstrzykując kod JavaScript .

Krok 1 Ponieważ historia Chrome jest sprawdzana w ramce iFrame, musimy odwiedzić: chrome: // history-frame / (skopiuj i wklej adres URL)

Krok 2 Wykonaj zapytanie wyszukiwania.

Krok 3 Otwórz konsolę Chrome ( F12lub CtrlShiftilub i) i wykonaj:

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

Krok 4 Naciśnij przycisk „ Usuń wybrane elementy ”.

W rzeczywistości usuwa to elementy z bieżącej strony. Mogę spróbować go przedłużyć, ale to dobry punkt wyjścia. Przeczytaj cały artykuł na moim blogu.

Fabricio PH
źródło
3
To już nie działa. document.getElementsByTagName ('input') zwraca pustą tablicę.
dinesh ygv
2
@FabricioPH Uruchomiłem skrypt w chrome: // history zamiast "chrome: // history-frame, dlatego dla mnie nie działał. Działa dobrze wewnątrz ramki.
dinesh ygv
2
To jest świetne! Na początku uruchomiłem go na innej karcie, która nie działała (z perspektywy czasu, z logicznie możliwych powodów). Ponownie uruchamiam konsolę na tej samej karcie co chrome: // history-frame i wszystko działało.
Jameson
1
bardzo czyste i łatwe rozwiązanie
danboh
1
To rozwiązanie jest nieaktualne: wystarczy nacisnąć „ctrl + a”
wuppi
125

To proste i łatwe.

Wyszukaj to, co chcesz usunąć. Wybierz pierwszy. Teraz przewiń do najnowszego wyniku. Naciśnij shifti wybierz najnowszy. Teraz wszystkie mecze są zaznaczone i możesz je usunąć razem.


W niektórych przypadkach usunięcie adresu z wyników historii nie wystarczy, aby ten adres nie pojawiał się w automatycznych sugestiach paska adresu.

W takim przypadku odwiedź tutaj: https://superuser.com/a/273280/121184

Pooya Estakhri
źródło
1
Więcej informacji tutaj: superuser.com/a/747816/85129
Anderson Green
2
Albo możesz skorzystać ze skrótu hakera, zobacz moją odpowiedź poniżej;)
Fabricio PH
4
@AndersonGreen To jest poprawna odpowiedź, a nie Fabricio.
LasagnaAndroid
To nie jest oczywiste. Oczekuję, że tekst zostanie wybrany.
dinesh ygv
1
jedna z odpowiedzi dalej w dół obejmuje również to (odkryłem to po zamieszczeniu mojego komentarza)
wuppi
15

Dla dosłownych wartości „zapytania” ...

Możesz nawet przeszukiwać historię Chrome za pomocą SQL. ( Firefox też: patrz poniżej. Oczywiście odpowiednia ścieżka do pliku będzie musiała zostać zmieniona ).

Przede wszystkim musisz zlokalizować plik historii Chrome. To jest, w moim systemie, w

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

co powinno tłumaczyć bardziej ogólnie

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

Tam znajdziesz plik „Historia”. Jest to plik SQLite3 i aby nim manipulować, Chrome musi być zamknięty . Jeśli to zrobisz, usuń plik historii i zacznij od nowa - to tak, jakbyś wyczyścił całą historię Chrome.

Następnie zmień nazwę pliku na History.sqlite3i zainstaluj SQLiteMan (lub dowolny inny edytor SQLite3 - w systemie Windows dwukrotne kliknięcie pliku może wystarczyć do wywołania sugestii), a następnie otwórz plik ( nb niektóre narzędzia mogą nie wymagać zmiany nazwy. Może spróbuj najpierw bez zmiany nazwy, aby zaoszczędzić pracę ).

W tabeli URLS znajdziesz adresy URL, które odwiedziłeś. Na przykład mogę uruchomić zapytanie:

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

aby wyświetlić wszystkie wystąpienia „spotkania” w części hosta lub ścieżki w odwiedzonych przeze mnie adresach URL. Albo mógłbym wyszukać pr0n lub ... cokolwiek, o ile przestrzegam składni SQL .

Możesz nawet użyć innych informacji do uruchomienia zapytania, na przykład czasu ostatniej wizyty. Pamiętaj tylko, że musisz przeliczyć daty na czas Chrome , czyli liczbę mikrosekund, która upłynęła od 1 stycznia, roku naszego Pana 1601 . W polu Unix, wpisanie date +%spowie ci liczbę sekund; pomnóż przez milion, dodaj 11644473600 i gotowe.

Na przykład wybierz wizyty po 1 października 2013 r .:

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

Aby usunąć, po prostu wymienić SELECT *się DELETEi naciśnij klawisz F9, aby wykonać zapytanie.

Możesz użyć NOW()zamiast bieżącej daty i dowolnej innej składni SQLite .

(W przypadku, gdy plik „Historia archiwum” przechowuje ostatnią historię zarchiwizowaną przez Chrome).

Po zakończeniu zmień nazwę pliku na „Historia”.

Automatyzacja: dezynfekcja jednym kliknięciem

Potrzebujesz narzędzia SQLite z wiersza polecenia, takiego jak sqlite3lub sql3tool. Następnie piszesz skrypt lub plik wsadowy, modyfikując poniższy kod odpowiednimi ścieżkami (nie chcesz wyczyścić mojej historii, pozostawiając swoją nietkniętą, prawda?):

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

Pamiętaj tylko, że to wymazuje Twoją historię na Twoim wystąpieniu w Chrome. Jeśli na przykład używasz serwera proxy, a ten serwer prowadzi dzienniki, wszystkie te adresy URL będą nadal dostępne w dziennikach .

AKTUALIZACJA : Ponadto, jeśli używasz jakiegoś niedorzecznego narzędzia SQL, które wymaga jawnego i znanego rozszerzenia pliku, będziesz musiał wykonać odpowiednią RENAME przed rozpoczęciem operacji, a drugą, aby uporządkować, gdy „ skończyłem:

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"

W każdym razie, gdy to zrobisz, kliknij dwukrotnie ikonę skryptu i hej presto !, Twoja historia Chrome jest odkażona . Działa również z Firefoksem; jego znaczniki czasu mogą jednak znajdować się w innym przedziale czasowym (prawdopodobnie zwykłym Uniksie), więc sprawdź wodę przed wskoczeniem.

Co powiesz na czyszczenie plików cookie?

Możesz zrobić to samo z plikami cookie zamiast z Historią.

Ale zauważysz w katalogu danych Chrome inne pliki niż Historia, z których jeden nosi nazwę Pliki cookie ... :-)

Zaawansowane pokrycie toru

Powyższa sztuczka SQL nie ogranicza się do usuwania. Możesz modyfikować wpisy za pomocą UPDATEpolecenia; a po usunięciu niepotrzebnych wpisów możesz użyć INSERTodpowiednich makr czasu i daty, aby Chrome uznał, że odwiedziłeś niektóre adresy URL, których tak naprawdę nie odwiedziłeś lub których nie odwiedziłeś o określonej godzinie.

Może się to przydać w tych przypadkach, gdy odkażanie sesji przeglądarki spowodowałoby nieprawdopodobne zdjęcie kogoś, kto gapił się przez szklane okno w puste okno przeglądarki przez bardzo długi czas, a preferowana jest pewna bezczynna nawigacja. Oczywiście zakłada to, że nikt nie zauważa, że ​​każdego dnia istnieje dokładnie ten sam „szablon” nawigacji .

LSerni
źródło
Poleceniem byłoby „USUŃ z URL ...”
Anwar,
3

Przytrzymując Shift i klikając pole wyboru pierwszego adresu URL, a następnie przewijając w dół do ostatniego. Oznacza to, że Google wybiera wszystkie posty pomiędzy. Następnie naciskasz „usuń”, a historia Voila zniknęła dla tego konkretnego adresu URL

Meron
źródło
Witamy w SuperUser Meron. Chociaż może to być poprawne, powiela informacje zamieszczone w co najmniej dwóch innych odpowiedziach.
bertieb
2

Aby dodać do awnsera Fabricio PH, powinno być wyczyszczone wszystkie strony wyników dla danego wyszukiwania na stronie chrome: // history-frame po wklejeniu do konsoli 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);
Thom
źródło
2

Możesz odwiedzić chrome: // history lub chrome: // history-frame. Na stronie możesz rozpocząć wyszukiwanie, a po wyświetleniu wszystkich wyników wystarczy nacisnąć, CTRL + Aaby zaznaczyć wszystkie widoczne elementy. Ponowne naciśnięcie powoduje usunięcie zaznaczenia wszystkich pozycji.

Z wybranymi elementami po prostu usuń je za pomocą DELklucza.

Ralph Segi
źródło
1

Nie, obecnie nie jest obsługiwany przez sam Chrome.

Jednak rozszerzenia mogą żądać dostępu do danych historii. Przedłużenie spełniłoby zatem Twoje potrzeby. Sam nie znam takiego rozszerzenia, ale małe wyszukiwanie sprawiło, że znalazłem to:

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

Być może to rozszerzenie może zrobić to, o co prosisz.

Steven Roose
źródło
2
Ta odpowiedź jest przestarzała - zobacz ten lub ten
Garrulinae
Przepraszam, ja też nie mogę go usunąć
Steven Roose
W porządku - po prostu wskazuję to przyszłym widzom.
Garrulinae
Smutne jest to, że tracę za to przedstawiciela: p
Steven Roose
Nie wymaga rozszerzenia, sprawdź moją odpowiedź :)
Fabricio PH
1

Wystarczy użyć Chrome z adresem URL: chrome: // history / # e = 1 & p = 0

Może być konieczne skopiowanie / wklejenie go do paska adresu URL.

Hugolpz
źródło
1

Na pasku Chrome spróbuj wyszukać element historii, który chcesz usunąć. Gdy pojawi się w wynikach, przewiń w dół za pomocą klawiszy strzałek (nawet jeśli jest to pierwszy element na liście) i naciśnij Shift + Delete.

Dejan Milosevic
źródło
1

Jeśli natkniesz się na ten temat w Google, istnieje teraz łatwiejszy sposób na usunięcie wielu elementów.

Gwendal
źródło
ta metoda nie działa
Woeitg
1

Wpisz adres URL, który chcesz usunąć, na karcie historii, jak na zrzucie ekranu poniżej, przełącz konsolę programisty (mac: opt + cms + i) i wybierz <iron-listelement. Następnie przełącz konsolę js (esc) i wpisz następujący kod w konsoli:

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

Powinien wybrać wszystkie widoczne elementy. Kliknij usuń i powtarzaj, aż lista będzie pusta lub chrome wyda dziwny błąd.

karta historii

tak
źródło
1

Możesz otworzyć menu Chrome - a następnie przejść do historii - jeśli chcesz usunąć wszystkie wizyty w określonej witrynie, aby umieścić nazwę domeny w wymaganym polu lub nacisnąć trzy kropki po prawej stronie od wymaganej domeny, jeśli znalazłeś ręcznie i wybierz wszystkie dane wejściowe związane z tą domeną - naciśnij czystą historię. Może znajdziesz więcej informacji związanych z pytaniem tutaj rocketfiles.com

Lisa Philips
źródło
0

Użyj tego rozszerzenia w Google Chrome: Kalendarz historii

To jest dokładnie to, czego szukałem ... sprawia, że ​​usuwanie historii itp. Jest jak Firefox, czyli szybkie i płynne. Jeśli masz ponad 2000 znaków historii dla stron takich jak amazon.com, przeglądarka historii przeglądarki Google Chrome zajmie wieki (przejdź strona po stronie), ale w oknie historii przeglądarki Firefox (lub przy użyciu wyżej wspomnianego chrome extn) możesz wybrać wszystkie 2000 i usunąć za jednym razem

Jatin Grover
źródło
Pokazuje 404 na tym łączu
Anwar
0
  • otwórz chrome:historyi wyszukaj witryny, które chcesz usunąć.
  • otwórz swoją chromowaną konsolę za pomocą ctrl-shift-j.

  • w stosownych przypadkach upewnij się, że menu rozwijane nad konsolą czyta, history (history-frame)a nie top,itd.

  • uruchom następujący kod w konsoli:

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

Sethicus
źródło
0

Jeśli kod Fabricio nie działa dla ciebie, stwierdziłem, że ten kod działa i dodatkowo kliknąłem przycisk „usuń wybrane”, więc jedyne, co muszę zrobić, to kliknąć okno dialogowe potwierdzenia.

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

document.getElementById("remove-selected").disabled = false
document.getElementById("remove-selected").click()
Pavelloz
źródło
0
  1. Kliknij pierwsze pole wyboru.
  2. Przewiń w dół do dołu strony.
  3. Przytrzymaj Shift i kliknij ostatnie pole wyboru.
  4. Wszystkie pola wyboru zostaną zaznaczone; Przewiń do góry, gdzie znajduje się przycisk „Usuń wybrane elementy”.
  5. Kliknij przycisk. Wybrane elementy zostaną usunięte :)
Nikhil Shukla
źródło
Witaj w superużytkowniku. Sugerowałbym, że na takie pytania nie najlepiej odpowiedzieć! Inne odpowiedzi mają już opcje, jak to zrobić, w tym metodę.
Lister
0

Użyj następujących opcji:

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

Umieść go w konsoli przeglądarki Chrome na stronie FRAME historii . Nie zwykła historia, ale historia FRAME . Następnie wywołaj funkcję removeItemsofQueryi wprowadź jako argument wyrażenie, które chcesz wyszukać, i usuń je. Naciśnij enter i naciśnij ostatni przycisk usuwania. Więc skończyłeś. Gratulacje.

Wilgotne włosy
źródło
0

Zacznij pisać termin, który chcesz wyszukać, gdy pojawi się niechciany termin, użyj strzałki w górę i w dół, aby przejść do tego terminu, i naciśnij Shift + Delete.

Nikolaos Mallios
źródło
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()
konstruktor
źródło
1
Proszę wyjaśnić (w angielskich słów ), jak to jest odpowiedź na pytanie.
G-Man,
Przejdź do chrome: // history, wyszukaj, co chcesz, otwórz konsolę Chrome, skopiuj i wklej powyższy kod, aby zaznaczyć wszystko
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_()  

})();
Kod znaku
źródło