Bagaimana saya bisa menghapus semua riwayat web yang cocok dengan kueri tertentu di Google Chrome

77

Di Google Chrome, mungkinkah untuk menghapus semua riwayat pencarian yang cocok dengan permintaan tertentu (misalnya, en.wikipedia.org)?

Anderson Green
sumber
Dimungkinkan untuk memilih semua item dalam pencarian dari Google Web History. Saya ingin tahu apakah mungkin untuk menyinkronkan Riwayat Web Google dengan riwayat web Chrome.
Anderson Green
Ada ekstensi yang disebut "Updater untuk Google Web History" - tampaknya ekstensi ini memungkinkan Google Web History untuk bekerja di Google Chrome.
Anderson Green
3
@AndersonGreen Bisakah Anda memperbarui jawaban yang diterima ke superuser.com/a/791728/84229 dari Fabricio PH. Itulah jawaban asli yang benar. Yang diterima saat ini hanya menyalin jawaban yang benar tanpa menghubungkan kredit. Sekarang telah dikembalikan kembali ke versi aslinya.
pengguna
3
@AndersonGreen Anda harus memilih Pooya 's sebagai jawaban yang benar, itu adalah yang paling sederhana, cara tercepat untuk melakukannya. Plus, Fabricio melakukan beberapa iklan sendiri pada jawabannya, yang tidak lengkap.
LasagnaAndroid
Untuk membuatnya lebih cepat: cari dan tekan "ctrl + a" untuk memilih semua hasil
wuppi

Jawaban:

60

Perbarui Jan 2019

Sekarang Chrome mendukung pintasan keyboard CtrlAatauA


Jawaban asli

Anda dapat mengambil pintasan peretas untuk menyuntikkan kode JavaScript .

Langkah 1 Karena riwayat Chrome dipertanyakan di dalam iFrame, kita harus mengunjungi: chrome: // history-frame / (salin dan tempel URL)

Langkah 2 Lakukan permintaan pencarian.

Langkah 3 Buka konsol Chrome ( F12atau CtrlShiftiatau i) dan jalankan:

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

Langkah 4 Tekan tombol ' Hapus item yang dipilih '.

Sebenarnya ini menghapus elemen di halaman saat ini. Saya mungkin mencoba memperpanjangnya, tetapi ini adalah titik awal yang baik. Baca artikel lengkap di blog saya.

Fabricio PH
sumber
3
Ini tidak berfungsi lagi. document.getElementsByTagName ('input') mengembalikan array kosong.
dinesh ygv
2
@FabricioPH Saya menjalankan skrip dalam chrome: // history bukannya "chrome: // history-frame, itulah sebabnya itu tidak berhasil untuk saya. Ia bekerja dengan baik di dalam frame.
dinesh ygv
2
Ini bagus! Pada awalnya saya menjalankannya di tab yang berbeda, yang tidak berfungsi (di belakang, untuk alasan yang dapat dicapai secara logis.) Jadi saya membuka kembali Konsol di tab yang sama dengan chrome: // frame sejarah, dan semuanya bekerja.
Jameson
1
solusi yang sangat bersih dan mudah
danboh
1
Solusi ini sudah usang: cukup tekan "ctrl + a"
wuppi
126

Itu sederhana & mudah.

Cari apa yang ingin Anda hapus. Pilih yang pertama. Sekarang gulir ke hasil terbaru. Tekan shift& pilih yang terbaru. Sekarang semua pertandingan dipilih dan Anda dapat menghapusnya bersama-sama.


Dalam beberapa kasus, menghapus alamat dari hasil riwayat tidak cukup untuk menghentikan munculnya alamat itu di saran otomatis bilah url.

Dalam hal ini, kunjungi di sini: https://superuser.com/a/273280/121184

Pooya Estakhri
sumber
1
Informasi lebih lanjut ada di sini: superuser.com/a/747816/85129
Anderson Green
2
Atau Anda dapat mengambil jalan pintas peretas, lihat jawaban saya di bawah;)
Fabricio PH
5
@AndersonGreen Ini adalah jawaban yang benar, bukan jawaban Fabricio.
LasagnaAndroid
Yang ini tidak jelas. Saya berharap teks terpilih.
dinesh ygv
1
salah satu jawaban lebih lanjut mencakup itu juga (menemukan bahwa setelah menempatkan komentar saya)
wuppi
15

Untuk nilai literal "kueri" ...

Anda bahkan dapat menanyakan riwayat Chrome Anda menggunakan SQL. ( Firefox juga: lihat di bawah. Tentu saja, jalur file yang sesuai harus diubah ).

Pertama-tama, Anda perlu mencari file Sejarah Chrome. Ini, pada sistem saya, di

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

yang seharusnya diterjemahkan secara lebih umum

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

Di sana, Anda akan menemukan file "History". Ini adalah file SQLite3, dan untuk memanipulasinya, Chrome harus ditutup . Jika Anda mengacaukannya, hapus file History dan mulai lagi - hanya seolah-olah Anda telah menghapus seluruh riwayat Chrome.

Kemudian, ganti nama file menjadi History.sqlite3dan instal SQLiteMan (atau editor SQLite3 lainnya - di Windows, mengklik dua kali pada file mungkin cukup untuk memicu saran), kemudian buka file ( nb beberapa utilitas mungkin tidak memerlukan penggantian nama. Mungkin coba tanpa ganti nama dulu, untuk menghemat pekerjaan ).

Di tabel URL, Anda akan menemukan URL yang telah Anda kunjungi. Misalnya saya dapat menjalankan kueri:

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

untuk melihat semua kemunculan 'meetup' di bagian host atau pathname dari URL yang saya kunjungi. Atau saya bisa mencari pr0n , atau ... apa saja, selama saya mematuhi sintaks SQL .

Anda bahkan dapat menggunakan informasi lain untuk menjalankan kueri, misalnya waktu kunjungan terakhir. Hanya ingat bahwa Anda perlu mengonversi tanggal menjadi waktu Chrome , yang merupakan jumlah mikrodetik yang terlewati sejak 1 Januari, tahun Tuhan 1601 kami . Pada kotak Unix, mengetik date +%sakan memberi tahu Anda jumlah detik; kalikan dengan satu juta, tambahkan 11644473600 dan Anda selesai.

Misalnya, pilih kunjungan setelah 1 Oktober 2013:

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

Untuk menghapus, cukup ganti SELECT *dengan DELETEdan tekan F9 untuk menjalankan kueri.

Anda dapat menggunakan NOW()alih-alih tanggal saat ini, dan sintaks SQLite lainnya .

(Dalam hal ini, file "Riwayat Arsip" menyimpan riwayat terakhir yang diarsipkan oleh Chrome).

Setelah selesai, jika perlu, ganti nama file menjadi "Riwayat".

Mengotomatiskannya: sanitasi sekali klik

Anda memerlukan utilitas SQLite baris perintah seperti sqlite3atau sql3tool. Kemudian Anda menulis skrip atau file batch, memodifikasi kode di bawah ini dengan jalur yang sesuai (Anda tidak ingin menghapus riwayat saya meninggalkan milik Anda tidak tersentuh, bukan?):

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

Hanya ingat bahwa ini akan menghapus Anda sejarah pada Anda contoh dari Chrome. Misalnya, jika Anda menggunakan proxy, dan proxy itu menyimpan log, semua URL itu akan tetap tersedia di log .

UPDATE : Juga, jika Anda menggunakan beberapa alat SQL yang mati otak yang membutuhkan file untuk memiliki ekstensi yang dikenal dan diketahui, Anda harus melakukan RENAME yang sesuai sebelum memulai operasi, dan yang lain untuk mengembalikan keadaan ketika Anda sudah selesai:

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"

Pokoknya, setelah ini selesai, klik dua kali pada ikon skrip dan hei presto !, riwayat Chrome Anda dibersihkan . Ia bekerja dengan Firefox juga; stempel waktunya mungkin ada dalam kerangka referensi waktu lain (mungkin Unix biasa), jadi periksalah airnya sebelum melompat masuk.

Bagaimana dengan membersihkan cookie?

Anda mungkin ingin melakukan hal yang sama pada cookie alih-alih Riwayat.

Tapi Anda akan melihat, di direktori data Chrome, file selain History, salah satunya bernama Cookie ... :-)

Penutup trek lanjutan

Trik SQL di atas tidak terbatas pada penghapusan. Anda dapat memodifikasi entri dengan UPDATEperintah; dan setelah menghapus entri yang tidak dibutuhkan , Anda dapat menggunakan INSERTmakro waktu dan tanggal yang sesuai untuk membuat Chrome percaya bahwa Anda mengunjungi beberapa URL yang sebenarnya tidak Anda kunjungi, atau tidak mengunjungi pada waktu dan tanggal tertentu.

Ini mungkin berguna dalam kasus-kasus tersebut ketika membersihkan sesi browser akan menghasilkan gambar yang tidak mungkin dari seseorang yang menatap dengan kaca mata pada jendela browser yang kosong untuk waktu yang sangat lama, dan beberapa jenis navigasi idle lebih disukai. Tentu saja, ini mengasumsikan bahwa tidak ada yang memperhatikan bahwa setiap hari ada persis 'navigasi' navigasi yang sama .

LSerni
sumber
Perintahnya adalah "HAPUS dari URL ..."
Anwar
3

Dengan menahan shift dan mengklik pada kotak centang url pertama dan kemudian gulir ke bawah ke yang terakhir. Ini memberitahu google untuk memilih semua posting di antaranya. Anda kemudian menekan "delete" dan riwayat Voila pergi untuk URL spesifik itu

Meron
sumber
Selamat Datang di SuperUser Meron. Meskipun ini mungkin valid, itu menggandakan informasi yang diposting di setidaknya dua jawaban lain.
bertieb
2

Untuk menambahkan ke awnser Fabricio PH, ini harus menghapus semua halaman hasil untuk pencarian yang diberikan pada chrome: // halaman frame-sejarah ketika disisipkan ke konsol 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
sumber
2

Anda dapat mengunjungi chrome: // history atau chrome: // history-frame. Pada halaman Anda dapat mulai mencari dan ketika semua hasil terdaftar cukup tekan CTRL + Auntuk memilih semua item yang terlihat. Menekannya lagi akan membatalkan pilihan semua item.

Dengan item yang dipilih cukup hapus melalui DELkunci.

Ralph Segi
sumber
1

Tidak, itu saat ini tidak didukung oleh Chrome itu sendiri.

Padahal, ekstensi dapat meminta akses ke data riwayat Anda. Jadi mungkin untuk perpanjangan untuk memenuhi kebutuhan Anda. Saya sendiri tidak tahu ekstensi seperti itu, tetapi pencarian kecil, membuat saya menemukan ini:

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

Mungkin ekstensi itu dapat melakukan apa yang Anda minta.

Steven Roose
sumber
2
Jawaban ini sudah ketinggalan zaman - lihat ini atau ini
Garrulinae
Saya juga tidak bisa menghapusnya, maaf
Steven Roose
Tidak apa-apa - saya hanya menunjukkannya untuk pemirsa di masa depan.
Garrulinae
Yang menyedihkan adalah bahwa saya kehilangan perwakilan untuk ini: p
Steven Roose
Tidak perlu ekstensi, periksa jawaban saya :)
Fabricio PH
1

Cukup gunakan Chrome dengan url: chrome: // history / # e = 1 & p = 0

Anda mungkin harus menyalin / menempelkannya ke bilah url Anda.

Hugolpz
sumber
1

Di bilah Chrome coba cari item riwayat yang ingin Anda hapus. Setelah muncul di hasil, gulir ke bawah dengan menggunakan tombol panah (bahkan jika itu adalah item pertama dalam daftar) dan tekan Shift + Delete.

Dejan Milosevic
sumber
1

Jika Anda menemukan topik ini dari google, ada cara yang lebih mudah untuk menghapus beberapa item sekarang.

Gwendal
sumber
metode ini tidak berfungsi
Woeitg
1

Ketik url yang ingin Anda hapus di tab histori seperti pada tangkapan layar di bawah ini, ganti konsol pengembang (mac: opt + cms + i) dan pilih <iron-listelemen. Kemudian beralih konsol js (esc), dan ketik kode berikut di konsol:

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

Itu harus memilih semua elemen yang terlihat. Klik hapus, dan ulangi sampai daftar kosong atau krom memberikan kesalahan aneh.

tab sejarah

yesil
sumber
1

Anda dapat membuka menu Chrome - kemudian pindah ke histori - jika Anda perlu menghapus semua kunjungan ke situs tertentu sehingga Anda memasukkan nama domain dalam arsip yang diminta atau menekan tiga titik di sebelah kanan dari domain yang diperlukan jika Anda menemukan secara manual dan pilih semua input yang terkait dengan domain ini - tekan riwayat bersih. Mungkin Anda dapat menemukan lebih banyak informasi yang relevan dengan pertanyaan Anda di sini rocketfiles.com

Lisa Philips
sumber
0

Gunakan ekstensi ini di Google Chrome: Kalender Sejarah

Ini persis apa yang saya cari ... itu membuat sejarah menghapus dll seperti firefox yaitu cepat dan halus. Jika Anda memiliki lebih dari 2000 tanda sejarah untuk situs-situs seperti amazon.com, penampil riwayat google chrome akan memakan waktu lama (pergi halaman demi halaman), tetapi di jendela riwayat firefox (atau menggunakan ekstensi chrome yang disebutkan di atas), Anda dapat memilih semua 2000 dan menghapus dalam sekali jalan

Jatin Grover
sumber
Ini menunjukkan 404 pada tautan itu
Anwar
0
  • buka chrome:historydan cari situs web yang ingin Anda hapus.
  • buka konsol chrome Anda dengan ctrl-shift-j.

  • jika berlaku, pastikan dropdown tepat di atas konsol berbunyi history (history-frame)dan tidak top,dll.

  • jalankan kode berikut di konsol:

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

Sethicus
sumber
0

Jika kode Fabricio tidak bekerja untuk Anda, saya menemukan bahwa kode ini berfungsi dan juga mengklik tombol "hapus yang dipilih" untuk saya sehingga satu-satunya hal yang harus saya lakukan adalah mengklik dialog konfirmasi.

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
sumber
0
  1. Klik pada kotak centang pertama.
  2. Gulir ke bawah ke bawah halaman.
  3. Tahan shift dan klik pada kotak centang terakhir.
  4. Semua kotak centang akan dipilih; Gulir ke atas, di mana tombol "Hapus Item yang Dipilih" ada.
  5. Klik tombol. Item yang dipilih akan dihapus :)
Nikhil Shukla
sumber
Selamat datang di pengguna super. Saya menyarankan bahwa pertanyaan seperti ini bukan yang terbaik untuk dijawab! Jawaban lain sudah memiliki opsi tentang cara melakukan ini termasuk metode Anda.
Lister
0

Gunakan yang berikut ini:

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

Masukkan ke konsol browser chrome satu halaman FRAME history . Bukan riwayat reguler, tetapi riwayat BINGKAI . Kemudian, panggil fungsi tersebut removeItemsofQuery, dan masukkan istilah yang ingin Anda cari dan hapus sebagai argumen. Tekan enter, dan tekan tombol hapus terakhir. Kemudian, kamu selesai. Selamat.

Damphair
sumber
0

Mulailah menulis istilah yang ingin Anda cari, ketika muncul istilah yang tidak diinginkan gunakan panah atas dan bawah untuk menuju ke istilah itu dan tekan Shift + Delete.

Nikolaos Mallios
sumber
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
sumber
1
Tolong jelaskan (dalam kata-kata bahasa Inggris ) bagaimana ini menjawab pertanyaan.
G-Man
Pergi ke chrome: // history, cari yang Anda inginkan, buka Chrome Console, salin & tempel kode di atas untuk memilih semua
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_()  

})();
Tandai Kode
sumber