背景:
由于百度翻译卡住了,在电脑同时运行了9个软件,在没有关掉其他8个软件的情况下,直接强制将电脑重启。
在重启电脑后,电脑在开机过程中出现了win 10更新的那个蓝色页面,点击了傻瓜式的四五个“下一步”之后,出现了一个关于edge 浏览器的设置。问我是否将edge 浏览器设置为默认浏览器,同时还有一个按钮是“保留原有设置”。
这个时候我心里想,我原有的默认浏览器就是edge,我就点了“将edge 浏览器设置为默认浏览器”。
场景:
电脑正常打开之后,edge浏览器一切正常,之前保存的书签文件都还在。
问题要点来了,chrome 打开之后,里面一片空白,搜索引擎的内核变成了百度,谷歌账号自动退出,所有之前保存的书签文件全部消失。
我看到内核变成了百度,我有手动换回了谷歌,换回之后就连屏幕中央的Google Logo都变成了黑白色。
右下角出现了一个莫名的链接,我点进去之后提示此链接不安全(直接就是打不开)。
第一次修复:
按照网上说的我将Default 文件下的bookmark 备份了,将bookmark.bak 文件名后缀去掉,直接改为了bookmark。
然后重启Chrome 我发现还是没用。
C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default
第二次修复:
我参考了 谷歌浏览器书签丢失,恢复工具 这篇随笔,使用了作者提供的小工具,还是没用。
作者在他的随笔里面提到,Default 下的bookmark 文件是之前的书签备份文件,可能因为你的操作,该备份文件已经发生了变化,如果该文件已经被覆盖的话,就没办法了。
“可能因为你的操作,该备份文件已经发生了变化”,在这里我就想到可能是因为我的“第一次修复”导致bookmark 已经发生了变化。
解决:
由于两次修复都已失败告终,好在之前我的电脑同时用了两款浏览器,edge 和chroome。
我在edge 的书签和chrome 是同步的,chrome 丢失的edge 上大部分都有。
卸载了chrome,重新安装,把edge 的书签导入了chrome,但还是有一个文件夹彻底丢失了。
事情总算得到了解决,只不过解决的方式并不漂亮。
原因:
以下三点原因是由ChatGPT 回答
1. Chrome设置或用户资料损坏 强制重启可能导致Chrome的用户配置文件损坏,导致浏览器无法读取已保存的设置和书签。 2. Chrome同步问题 如果您使用的是Google账户同步书签和设置,强制重启可能干扰了同步过程,导致信息丢失或未能正确加载。 3. 本地文件损坏 Chrome书签和用户数据存储在本地文件中,强制重启可能导致这些文件损坏或丢失。
我怀疑毛病出在了第一点和第三点。
为什么不是第二点?因为我之前就压根没用过同步功能。。。
第一点的可能性就是,电脑重启完毕之后,我点开了右下角哪个链接(你说是你的电脑和你学校机房电脑都没有的那个),我把哪个那个链接点开之后,里面提示此链接不安全(直接就是打不开)。还有就是谷歌一般都会给书签做出自动备份的,我在C盘把那个自动备份bookmark 文件打开了,里面啥都没有,就那几个默认网站,所以结论80%就是,强制重启导致文件损坏或丢失。
另外20%就是,我重启之后,没有立即打开谷歌的自动备份文件夹,而是修改了一个文件名,这个多余的动作(第一次修复),导致谷歌仅有一份自动备份好的也丢失了,所以那个作者提供的恢复工具都恢复不了了。但是这个可能性是比较小的,因为右下角那个不安全链接可能就是强制重启后文件丢失的提示。
事发时间是在2024年6月21日0点30分左右,我在20246月21日16点30分左右,查看了Windows事件查看器的系统日志,但还是没看出个什么。
规避措施:
定期备份书签:在Chrome书签管理器中导出书签,以便在数据丢失时可以轻松恢复。定期同步:确保Chrome与Google账户同步,以便在设备间保持数据一致。
----------分割线----------
最后研究了一下那个提供小工具的作者用的什么技术栈写的那个书签恢复工具。
技术原理和步骤
-
读取文件内容:
- 使用文件读取技术来读取
Bookmarks
文件的内容。 Bookmarks
文件通常是以JSON格式存储书签信息。
- 使用文件读取技术来读取
-
解析JSON数据:
- 使用JSON解析库将
Bookmarks
文件的内容转换为可操作的数据结构(如Python中的字典,JavaScript中的对象等)。
- 使用JSON解析库将
-
提取书签信息:
- 从解析后的数据结构中提取书签信息,如书签的名称、URL、文件夹结构等。
-
生成新的书签文件:
- 根据提取的信息生成新的书签文件,这可以是HTML格式的文件,用于导入到浏览器中。
-
导入书签:
- 将生成的书签文件导入到Google Chrome或其他浏览器中。
可能使用的技术栈
-
编程语言:
- Python:由于其丰富的标准库和第三方库,特别适合文件操作和JSON解析。
- JavaScript:可用于在浏览器中直接处理JSON数据,并生成HTML书签文件。
- Node.js:适合用来开发跨平台的文件操作和JSON解析工具。
- Java:可以用于开发GUI应用程序来处理和管理书签。
-
JSON解析库:
- Python:
json
模块(标准库)。 - JavaScript:
JSON.parse()
。 - Node.js:
fs
模块和JSON.parse()
。 - Java:
org.json
库或Gson
库。
- Python:
-
文件读取和写入:
- Python:
open()
函数和json
模块。 - JavaScript:HTML5的文件API(在浏览器中)或Node.js的
fs
模块。 - Java:
FileReader
和BufferedReader
类。
以下是一个简单的Python示例,用于解析 Bookmarks
文件并生成书签HTML文件:
import json def parse_bookmarks(bookmarks_file): with open(bookmarks_file, 'r', encoding='utf-8') as file: data = json.load(file) return extract_bookmarks(data) def extract_bookmarks(data): bookmarks = [] def extract_nodes(nodes): for node in nodes: if node['type'] == 'url': bookmarks.append({'name': node['name'], 'url': node['url']}) elif node['type'] == 'folder': extract_nodes(node['children']) extract_nodes(data['roots']['bookmark_bar']['children']) return bookmarks def generate_html(bookmarks, output_file): with open(output_file, 'w', encoding='utf-8') as file: file.write('<!DOCTYPE NETSCAPE-Bookmark-file-1>\n') file.write('<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">\n') file.write('<TITLE>Bookmarks</TITLE>\n') file.write('<H1>Bookmarks</H1>\n') file.write('<DL><p>\n') for bookmark in bookmarks: file.write(f'<DT><A HREF="{bookmark["url"]}">{bookmark["name"]}</A>\n') file.write('</DL><p>\n') bookmarks = parse_bookmarks('Bookmarks') generate_html(bookmarks, 'bookmarks.html')
这个Python脚本完成了以下几步:
- 读取
Bookmarks
文件。 - 解析JSON数据并提取书签信息。
- 生成包含书签的HTML文件,可以导入到Google Chrome中。