在 Google Chrome 中,是否可以删除与特定查询(例如 en.wikipedia.org)匹配的所有搜索历史记录?
答案1
2019 年 1 月更新
现在 Chrome 支持键盘快捷键CtrlA或⌘A
原始答案
你可以走黑客捷径注入 JavaScript 代码。
步骤1 由于 Chrome 历史记录是在 iFrame 内查询的,因此我们必须访问: chrome://history-frame/(复制并粘贴网址)
第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 打 '删除所选项目' 按钮。
实际上,这会删除当前页面中的元素。我可能会尝试扩展它,但这是一个很好的起点。
答案2
这很简单又容易。
搜索要删除的内容。选择第一个。现在滚动到最新结果。按下shift并选择最新的一个。现在所有匹配项都已选中,您可以一起删除它们。
在某些情况下,从历史结果中删除地址不足以阻止该地址出现在 URL 栏自动建议中。
在这种情况下请访问此处:https://superuser.com/a/273280/121184
答案3
为了文字“查询”的值...
您甚至可以使用 SQL 查询您的 Chrome 历史记录。(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 中,双击文件可能足以触发建议),然后打开文件(注意:有些实用程序可能不需要重命名。也许可以先尝试不重命名,以节省工作量)。
在 URLS 表中,您将找到您访问过的 URL。例如,我可以运行查询:
SELECT * FROM urls WHERE url LIKE '%meetup%';
查看我访问的 URL 的主机或路径名部分中所有出现的“meetup”。或者我可以搜索pr0n, 或者...任何事情,只要我遵守 SQL 语法。
您甚至可以使用其他信息来运行查询,例如上次访问的时间。只需记住您需要将日期转换为Chrome 时间,即从1601 年 1 月 1 日在 Unix 机器上,输入后date +%s
会告诉你秒数;乘以一百万,再加上 11644473600 就完成了。
例如,选择 2013 年 10 月 1 日以后的访问:
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 数据目录中,除了 History 之外,还有其他文件,其中一个名为 Cookies... :-)
先进的轨道覆盖
上面的 SQL 技巧不仅限于删除。您可以使用命令修改条目UPDATE
;删除后不需要条目,您可以INSERT
将它们与适当的时间和日期宏一起使用,让 Chrome 相信您访问了某些您实际上并未访问过的 URL,或者在某个时间和日期并未访问过。
在某些情况下,清理浏览器会话会导致出现意想不到的画面,即某人长时间呆呆地盯着空浏览器窗口,而某种空闲导航是更好的选择,这时这种方法可能会派上用场。当然,这假设没有人注意到每天有完全相同的导航“模板”。
答案4
按住 Shift 并单击第一个 URL 复选框,然后向下滚动到最后一个。这会告诉 Google 选择中间的所有帖子。然后点击“删除”,然后该特定 URL 的历史记录就消失了