Python解析Chrome浏览器书签文件详解
本文介绍如何使用Python解析Chrome浏览器的书签文件。首先说明各操作系统下Bookmarks文件的存储路径,包括Mac、Linux和Windows。接着解析书签JSON文件的数据结构,重点展示如何遍历bookmark_bar节点获取书签列表,并提供完整的Python代码示例以实现书签数据的提取与打印。
Chrome书签解析概述
若能将Chrome浏览器的书签导出并转换为所需格式,即可开发各类插件以辅助书签管理。
这是可行的,下文将以Python为例,演示如何遍历并打印书签内容。
书签文件路径
获取书签文件路径
首先介绍获取书签文件的方法。
Chrome浏览器在不同平台中,书签文件的存放位置有所不同。
- Mac系统路径
~/Library/Application Support/Google/Chrome/Default/Bookmarks
- Linux系统路径
~/.config/google-chrome/Default/Bookmarks
- Windows系统路径
%LOCALAPPDATA%"\Google\Chrome\User Data\Default\Bookmarks"
解析书签JSON结构
书签数据结构
书签内容采用JSON格式,其基本结构如下所示。
{
"checksum":"b196f618a9166d56dc6c98cfe9a98d45",
"roots":{
"bookmark_bar":{
"children":[
{
"date_added":"13246172853099058",
"guid":"83431411-157f-45f8-a9a4-d9af26c71bce",
"id":"1944",
"name":"blog local 温欣爸比的博客",
"type":"url",
"url":"http://localhost:4000/"
},
{
"children":[
{
"date_added":"13246172853099058",
"guid":"83431411-157f-45f8-a9a4-d9af26c71bce",
"id":"1944",
"name":"blog local 温欣爸比的博客",
"type":"url",
"url":"http://localhost:4000/"
}
],
"date_added":"13246172844427649",
"date_modified":"13246172865895702",
"guid":"6aa4ecce-a220-4689-9239-7df10965748b",
"id":"1943",
"name":"Blog",
"type":"folder"
}
],
"date_added":"13242060909278534",
"date_modified":"13246172853099058",
"guid":"00000000-0000-4000-a000-000000000002",
"id":"1",
"name":"书签栏",
"type":"folder"
},
"other":{
"children":[
],
"date_added":"13242060909278616",
"date_modified":"0",
"guid":"00000000-0000-4000-a000-000000000003",
"id":"2",
"name":"其他书签",
"type":"folder"
},
"synced":{
"children":[
],
"date_added":"13242060909278621",
"date_modified":"0",
"guid":"00000000-0000-4000-a000-000000000004",
"id":"3",
"name":"移动设备书签",
"type":"folder"
}
},
"sync_metadata":"",
"version":1
}
Python代码实现
理解该结构后,编写代码便十分简单。以书签栏为例,只需对 data['roots']['bookmark_bar']['children'] 进行循环遍历即可。具体代码细节可参考demo。
完整示例代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: wxnacy(wxnacy@gmail.com)
# Description: 打印不换行进度条
# 预览 https://raw.githubusercontent.com/wxnacy/image/master/blog/python_progress.gif
import time
def get_progress(progress, total):
'''获取进度条'''
progress_ratio = progress / total
progress_len = 20
progress_num = int(progress_ratio * 20)
pro_text = '[{:-<20s}] {:.2f}% {} / {}'.format(
'=' * progress_num, progress_ratio * 100, progress, total)
return pro_text
def print_progress(total):
'''模拟打印进度条'''
progress = 0
step = 30
while progress < total:
time.sleep(1)
b = progress
e = b + step
progress += step
end = '\r'
if progress >= total:
end = '\n'
progress = total
print(get_progress(progress, total), end = end)
if __name__ == "__main__":
print_progress(100)
以上即为使用Python解析Chrome浏览器书签的示例,更多Python解析Chrome浏览器书签的相关资料请持续关注本站其他文章。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













