通过所有Skype历史记录进行搜索


Answers:


24

在“联系人”列表或“最近”列表中,只需单击要查看其对话历史记录的联系人或组,便会显示对话历史记录。

存储所有聊天记录的main.db数据库文件。main.db是标准的SQLite数据库文件,可以使用任何SQLite浏览器应用程序打开。但是,有一个免费的应用程序,专门用于读取Skype的聊天和通话数据– SkypeLogView

main.db文件保存在以下其中之一(取决于OS)中。

在Windows 7 +上: C:\Users\%USERNAME%\AppData\Roaming\Skype\[Skype User Name]

在Windows XP上: C:\Documents and Settings\%USERNAME%\Application Data\Skype\[Skype User Name]

以下内容适用于所有Windows版本,您可以将其复制到“运行”提示中:

%APPDATA%\Skype \[Skype User Name]

在Mac OS X上: Library/Application Support/Skype/[Skype User Name]

为了将来,您可能需要考虑使用SkyHistory


2
SkypeLogView-帮助我,非常不错的工具。
coms 2012年

3
SkyHistory仍可与最近的Skype一起使用。谢谢!
Vadzim 2014年

感谢您链接到第三方工具。我发现Skype本身的搜索是la脚的-聊天中一些较旧的时间段有时会崩溃,而Skype在搜索时会忽略它们。我必须先滚动浏览聊天并扩展所有折叠时段,然后才能找到以前隐藏在其中一个折叠时段中的文本。
JustAMartin 2015年

1
考虑更换[USER NAME]%USERNAME%,让你的路变得拷贝/ pastable。另外,“ Skype名称”对我来说是模棱两可的(以为是Skype的版本或其他O_o),我将更新为“ Skype用户名”
Balmipour

1
似乎答案已经过时了。有人会在2019年揭露Skype的历史吗?
userlond

7

Skyperious也可能值得一试。它具有SkypeLogView的一些功能,例如

  • 将联系人从CSV文件导入到Skype联系人
  • 查看任何数据库表并导出其数据
  • 更改,添加或删除任何表中的数据
  • 执行直接SQL查询
  • 同步两个Skype数据库中的消息:使聊天记录在不同的计算机上保持最新,或将丢失的消息从较旧的文件还原到当前文件中
  • 聊天统计

我只是再次使用Skyperious来搜索几年前在一次对话中使用的单词,但是却忘记了正在与之交谈的人。如果我尝试单击每个单独的名称并搜索该词,那将花费很多时间。感谢上帝。
乔恩·格拉

7

与使用第三方Skype专用工具相比,使用SqliteBrowser(例如SqliteBrowser)来搜索Skype数据库来编写自己的SQL查询可提供更多的灵活性和功能。

例如,此查询将在您所有的聊天中搜索文本字符串,并显示消息的发布时间(本地),消息本身,聊天的名称(如果有名称)以及谁在聊天中。聊天。

select DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime') as postedon, c.displayname as chatname, m.from_dispname as fromuser, m.body_xml as msgtext
from Messages m
INNER JOIN Conversations c ON m.convo_id = c.id
where m.body_xml LIKE '%my text%' --case insensitive
order by m.timestamp DESC

在我当前的Skype版本(7.33.0.105)上,这不起作用(返回0行)
Facundo Colombier

@Facundo:我只是在7.34.0.102上再次尝试过,它仍然对我有用。确保将“%my text%”行更改为您要搜索的内容(或注释掉该行)。
twasbrillig

@Facundo:我发现了我的错误;我加入了错误的餐桌。请使用上面的更新脚本重试。
twasbrillig


1

以下对main.db的查询对我有用:

查找群组聊天

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), c.id, m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.type = 2 AND
m.body_xml NOT NULL
ORDER BY m.timestamp ASC

查找与好友的私人聊天

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE m.body_xml NOT NULL AND
c.identity LIKE '%YOUR.BUDDY.NAME.HERE%' --case insensitive
ORDER BY m.timestamp ASC

在与好友的私人聊天中找到给定的单词

SELECT DISTINCT datetime(m.timestamp, 'unixepoch', 'localtime'), m.author, m.body_xml FROM
messages m
JOIN conversations c ON c.id = m.convo_id
WHERE c.identity = 'YOUR.BUDDY.NAME.HERE' AND
m.body_xml NOT NULL AND
m.body_xml LIKE '%YOUR.SEARCHED.WORD.HERE%' --case insensitive
ORDER BY m.timestamp ASC

PS:有时您的好友名称可能与Skype中显示的名称不同,因此请首先检查以下一项:

SELECT identity, displayname FROM conversations

然后从identity专栏拿起一个


1

SkyHistory对我不起作用-似乎它不是为68MB的Skype日志而设计的:)

最强大的方法之一也非常简单-只需使用SQLite客户端即可。在这里,我写了一个简单的手册:http : //jehy.ru/articles/2014/05/26/searching-through-skype-history/

如果您有300多个联系人,并且他们的对话重叠,那么您就会知道,使用简单的Ctrl + F方法不可能找到任何东西。

幸运的是,Skype使用SQLite数据库,我们可以直接连接到该数据库并直接在其中搜索。因此,您需要:

1)下载SQLite客户端(我使用http://sqlitebrowser.org/,但您可以安装任何喜欢的客户端)2)查找您在Skype网站上描述的历史文件:

按住Windows键键盘上的Windows键,然后按R调出“运行”窗口。如果您在Windows 8上使用触摸屏设备,则可以从“搜索”超级按钮中打开“运行”窗口。在“运行”窗口中键入%appdata%\ Skype,然后按Enter。打开以您的Skype名称命名的文件夹。在文件夹中找到main.db文件,该文件是您的聊天记录。

3)使用您的SQLite客户端打开此文件。4)打开数据库表“消息”。5)使用您要搜索的SQL查询来查找所需的消息。这是我在对话中搜索“ git”单词的示例-但是您可以使用许多字段进行搜索和排序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.