Come posso eliminare tutta la cronologia web che corrisponde a una query specifica in Google Chrome


77

In Google Chrome, è possibile eliminare tutta la cronologia delle ricerche che corrisponde a una query specifica (ad esempio, en.wikipedia.org)?


È possibile selezionare tutti gli elementi in una ricerca dalla Cronologia web di Google. Mi chiedo se sia possibile sincronizzare la Cronologia web di Google con la cronologia web di Chrome.
Anderson Green,

C'è un'estensione chiamata "Aggiornamento per la Cronologia web di Google": sembra che questa estensione consenta alla Cronologia web di Google di funzionare in Google Chrome.
Anderson Green,

3
@AndersonGreen Potresti aggiornare la risposta accettata a superuser.com/a/791728/84229 da Fabricio PH. Questa è la risposta corretta originale. Quello attualmente accettato aveva semplicemente copiato la risposta giusta senza attribuire alcun credito. Ora è tornato alla sua versione originale.
utente

3
@AndersonGreen Dovresti scegliere la risposta corretta di Pooya , è il modo più semplice e veloce per farlo. Inoltre, Fabricio sta facendo un po 'di auto pubblicità sulla sua risposta, che non è completa.
LasagnaAndroid,

Per renderlo veloce: cerca e poi premi "ctrl + a" per selezionare tutti i risultati
wuppi

Risposte:


60

Aggiornamento gennaio 2019

Ora Chrome supporta la scorciatoia da tastiera CtrlAoA


Risposta originale

Puoi prendere il collegamento dell'hacker iniettando il codice JavaScript .

Passaggio 1 Poiché la cronologia di Chrome viene interrogata all'interno di un iFrame, dobbiamo visitare: chrome: // history-frame / (copia e incolla URL)

Passaggio 2 Eseguire la query di ricerca.

Passaggio 3 Aprire la console di Chrome ( F12o CtrlShiftio i) ed eseguire:

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

Passaggio 4 Premere il pulsante " Rimuovi elementi selezionati ".

In realtà questo elimina gli elementi nella pagina corrente. Potrei provare ad estenderlo, ma è un buon punto di partenza. Leggi l' articolo completo nel mio blog.


3
Questo non funziona più. document.getElementsByTagName ('input') restituisce un array vuoto.
Dinesh YGV,

2
@FabricioPH Ho eseguito lo script in chrome: // history anziché "chrome: // history-frame, motivo per cui non ha funzionato per me. Funziona bene all'interno del frame.
Dinesh ygv,

2
Questo è fantastico! All'inizio l'ho eseguito in una scheda diversa, che non funzionava (con il senno di poi, per motivi logicamente raggiungibili). Quindi riapro la console nella stessa scheda di chrome: // history-frame, e tutto ha funzionato.
Jameson,

1
soluzione molto pulita e semplice
danboh

1
Questa soluzione è obsoleta: premi semplicemente "ctrl + a"
wuppi il

126

È semplice e facile.

Cerca ciò che desideri rimuovere. Seleziona il primo. Ora scorri fino all'ultimo risultato. Premi shifte scegli l'ultimo. Ora tutte le partite sono selezionate e puoi rimuoverle insieme.


In alcuni casi, la rimozione di un indirizzo dai risultati della cronologia non è sufficiente per interrompere la visualizzazione dell'indirizzo nei suggerimenti automatici della barra dell'URL.

In tal caso, visitare qui: https://superuser.com/a/273280/121184


1
Ulteriori informazioni qui: superuser.com/a/747816/85129
Anderson Green

2
Oppure puoi prendere una scorciatoia per hacker, vedi la mia risposta di seguito;)
Fabricio PH

5
@AndersonGreen Questa è la risposta corretta, non quella di Fabricio.
LasagnaAndroid,

Questo non è ovvio. Mi aspetto che il testo venga selezionato.
Dinesh YGV,

1
una delle risposte più in basso copre anche questo (scoperto dopo aver inserito il mio commento)
wuppi

15

Per valori letterali di "query" ...

Puoi persino eseguire una query sulla cronologia di Chrome utilizzando SQL. ( Anche Firefox: vedi sotto. Naturalmente, il percorso del file appropriato dovrà essere modificato ).

Prima di tutto, devi individuare il file Cronologia di Chrome. Questo è, sul mio sistema, in

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

che dovrebbe tradursi in modo più generale

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

Lì troverai un file "Cronologia". È un file SQLite3 e per manipolarlo, Chrome deve essere chiuso . Se fai un pasticcio, elimina il file History e ricomincia da capo: è come se avessi cancellato l'intera cronologia di Chrome.

Quindi, rinominare il file History.sqlite3e installare SQLiteMan (o qualsiasi altro editor SQLite3 - in Windows, fare doppio clic sul file potrebbe essere sufficiente per attivare un suggerimento), quindi aprire il file ( nb alcune utility potrebbero non aver bisogno della ridenominazione. Forse prova prima a rinominare, per salvare il lavoro ).

Nella tabella degli URL troverai gli URL che hai visitato. Ad esempio, posso eseguire la query:

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

per visualizzare tutte le occorrenze di "meetup" nella parte host o pathname degli URL che ho visitato. Oppure potrei cercare pr0n o ... qualsiasi cosa, purché aderisca alla sintassi SQL .

È anche possibile utilizzare le altre informazioni per eseguire la query, ad esempio l'ora dell'ultima visita. Ricorda solo che devi convertire le date in tempo di Chrome , che è il numero di microsecondi trascorsi dal 1 ° gennaio dell'anno di nostro Signore 1601 . Su una casella Unix, digitando date +%sti dirà il numero di secondi; moltiplicare per un milione, aggiungere 11644473600 e il gioco è fatto.

Ad esempio, selezionare le visite dopo il 1 ottobre 2013:

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

Per eliminare, basta sostituire SELECT *con DELETEe premere F9 per eseguire la query.

È possibile utilizzare NOW()anziché la data corrente e qualsiasi altra sintassi di SQLite .

(Nel caso, il file "Archivio storico" contiene l'ultima cronologia archiviata da Chrome).

Al termine, se necessario, rinominare il file in "Cronologia".

Automatizzandolo: sanificazione con un clic

È necessaria un'utilità SQLite da riga di comando come sqlite3o sql3tool. Quindi scrivi uno script o un file batch, modificando il codice seguente con i percorsi appropriati (non vuoi cancellare la mia storia lasciando intatta la tua, vero?):

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

Ricorda solo che questo cancella la tua cronologia sulla tua istanza di Chrome. Se, ad esempio, si utilizza un proxy e tale proxy mantiene i registri, tutti questi URL saranno ancora disponibili nei registri .

AGGIORNAMENTO : inoltre, se stai utilizzando uno strumento SQL cerebrale che richiede un'estensione esplicita e nota del file, dovrai eseguire un RENAME appropriato prima di iniziare le operazioni e un altro per rimettere in ordine le cose quando " ho finito:

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"

Ad ogni modo, una volta fatto questo, fai doppio clic sull'icona dello script e hey presto !, la tua cronologia di Chrome viene disinfettata . Funziona anche con Firefox; i suoi timestamp potrebbero essere in qualche altro intervallo di riferimento temporale, sebbene (possibilmente semplice Unix), quindi controlla l'acqua prima di saltare.

Che ne dici di pulire i biscotti?

Potresti voler fare la stessa cosa con i cookie anziché con la cronologia.

Ma avrai notato, nella directory dei dati di Chrome, altri file oltre alla Cronologia, uno dei quali si chiama Cookie ... :-)

Copertura traccia avanzata

Il trucco SQL sopra riportato non si limita alle eliminazioni. È possibile modificare le voci con il UPDATEcomando; e dopo aver eliminato le voci non necessarie , puoi utilizzare INSERTle macro di data e ora appropriate per far credere a Chrome di aver visitato alcuni URL che non hai effettivamente visitato o che non hai visitato ad un certo momento e data.

Questo può tornare utile in quei casi quando la sanificazione di una sessione del browser comporterebbe un'immagine improbabile di qualcuno che fissa a lungo una finestra del browser vuota per molto tempo ed è preferibile un tipo di navigazione inattiva. Naturalmente, questo presuppone che nessuno nota che ogni giorno esiste esattamente lo stesso 'modello' di navigazione .


Il comando sarebbe "ELIMINA dall'URL ..."
Anwar il

3

Tenendo premuto MAIUSC e facendo clic sulla casella di controllo del primo URL, quindi scorrendo verso il basso fino all'ultimo. Questo dice a Google di selezionare tutti i post tra. Quindi fai clic su "Elimina" e la cronologia di Voila è andata a cercare quell'URL specifico


Benvenuto in SuperUser Meron. Sebbene ciò possa essere valido, duplica le informazioni pubblicate in almeno altre due risposte.
bertieb,

2

Per aggiungere al tendalino di Fabricio PH, questo dovrebbe essere chiaro tutte le pagine dei risultati per una data ricerca nella pagina chrome: // history-frame quando incollato nella console 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

Puoi visitare chrome: // history o chrome: // history-frame. Nella pagina puoi iniziare la ricerca e quando tutti i risultati sono elencati, premi semplicemente CTRL + Aper selezionare tutti gli elementi visibili. Premendolo nuovamente deseleziona tutti gli elementi.

Con gli elementi selezionati è sufficiente eliminarli tramite il DELtasto.


1

No, al momento non è supportato dallo stesso Chrome.

Tuttavia, le estensioni possono richiedere l'accesso ai dati della cronologia. Quindi sarebbe possibile che un'estensione soddisfi le tue esigenze. Io stesso non conosco una simile estensione, ma una piccola ricerca mi ha fatto trovare questo:

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

Forse quell'estensione può fare quello che richiedi.


2
Questa risposta è obsoleta - vedi questa o questa
Garrulinae

Nemmeno io posso cancellarlo, mi dispiace
Steven Roose,

Va bene - lo sto solo sottolineando per i futuri spettatori.
Garrulinae,

La cosa triste è che perdo la reputazione per questo: p
Steven Roose,

Nessuna estensione necessaria, controlla la mia risposta :)
Fabricio PH

1

Usa Chrome con l'URL: chrome: // history / # e = 1 & p = 0

Potrebbe essere necessario copiarlo / incollarlo nella barra degli indirizzi.


1

Nella barra di Chrome prova a cercare l'elemento della cronologia che desideri eliminare. Una volta che appare nei risultati, scorrere verso il basso usando i tasti freccia (anche se è il primo elemento nell'elenco) e premere Maiusc + Elimina.



1

Digita l'URL che desideri rimuovere nella scheda Cronologia come nello screenshot seguente, attiva la console per sviluppatori (mac: opt + cms + i) e seleziona l' <iron-listelemento. Quindi attiva la console js (esc) e digita il seguente codice nella console:

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

Dovrebbe selezionare tutti gli elementi visibili. Fai clic su Elimina e ripeti fino a quando l'elenco è vuoto o Chrome dà uno strano errore.

scheda cronologia


1

Puoi aprire il menu Chrome, quindi passare alla cronologia, se devi eliminare tutte le visite a un determinato sito in modo da inserire il nome del dominio nel campo richiesto o premere tre punti a destra dal dominio richiesto se lo trovi manualmente e scegli tutti gli input relativi a questo dominio - premi cronologia pulita. Forse puoi trovare maggiori informazioni pertinenti alla tua domanda qui rocketfiles.com


0

Usa questa estensione in Google Chrome: Calendario storico

È esattamente quello che stavo cercando ... rende la cancellazione della cronologia ecc. Proprio come Firefox, cioè veloce e fluido. Se hai oltre 2000 marchi storici per siti come amazon.com, il visualizzatore della cronologia di google chrome impiegherà anni (vai pagina per pagina), ma nella finestra della cronologia di firefox (o utilizzando il summen chrome summn), puoi selezionare tutti 2000 ed eliminare in un colpo solo


Mostra 404 su quel link
Anwar il

0
  • aprire chrome:historye cercare i siti Web che si desidera eliminare.
  • apri la tua console Chrome con ctrl-shift-j.

  • se applicabile, assicurarsi che il menu a discesa sopra la console legga history (history-frame)e non top,ecc.

  • eseguire il codice seguente nella console:

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


0

Se il codice di Fabricio non funziona per te, ho scoperto che questo codice funziona e inoltre facendo clic sul pulsante "rimuovi selezione" per me, l'unica cosa che devo fare è fare clic sulla finestra di dialogo di conferma.

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. Fai clic sulla prima casella di controllo.
  2. Scorri verso il basso fino alla fine della pagina.
  3. Tieni premuto MAIUSC e fai clic sull'ultima casella di controllo.
  4. Verrà selezionata tutta la casella di controllo; Scorri verso l'alto, dove è presente il pulsante "Rimuovi elementi selezionati".
  5. Fare clic sul pulsante Gli elementi selezionati verranno eliminati :)

Benvenuto in Super User. Suggerirei che domande come queste non siano le migliori a cui rispondere! Altre risposte hanno già le opzioni su come farlo, incluso il metodo.
Lister

0

Utilizza il seguente:

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

Inseriscilo nella console del browser Chrome nella pagina FRAME della cronologia . Cronologia non regolare, ma cronologia FRAME . Quindi, chiamare la funzione removeItemsofQuerye inserire il termine che si desidera cercare e rimuovere come argomento. Premi Invio e premi il pulsante di rimozione finale. Quindi hai finito. Congratulazioni.


0

Inizia a scrivere il termine che vuoi cercare, quando appare il termine indesiderato usa la freccia su e giù per andare a quel termine e premi Maiusc + Elimina.


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
Spiegare (in parole inglesi ) come questo risponde alla domanda.
G-Man,

Vai su chrome: // history, cerca quello che vuoi, apri Chrome Console, copia e incolla il codice sopra per selezionare tutto
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_()  

})();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.