使用Python解析Chrome浏览器书签的示例


Posted in Python onNovember 13, 2020

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 格式,结构如下

{
  "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
}

清晰了这个结构在写代码就很简单了,以书签栏为例,只需要将 data['roots']['bookmark_bar']['children'] 进行循环遍历即可,代码详情可见 demo

完整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浏览器书签的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用Python实现换行符转换的脚本的教程
Apr 16 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
python简单操作excle的方法
Sep 12 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
Django--权限Permissions的例子
Aug 28 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
利用Python校准本地时间的方法教程
Oct 31 Python
聊聊python中的异常嵌套
Sep 01 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
Nov 09 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 #Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 #Python
python+flask编写一个简单的登录接口
Nov 13 #Python
jupyter notebook快速入门及使用详解
Nov 13 #Python
Python中pass的作用与使用教程
Nov 13 #Python
python入门教程之基本算术运算符
Nov 13 #Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 #Python
You might like
php设计模式 State (状态模式)
2011/06/26 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
详解python中的json和字典dict
2018/06/22 Python
python-opencv颜色提取分割方法
2018/12/08 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
会计专业自荐信
2013/12/02 职场文书
护理工作感言
2014/01/16 职场文书
开学典礼感言
2014/02/16 职场文书
运输服务质量承诺书
2014/03/27 职场文书
天猫活动策划方案
2014/08/21 职场文书
三方股份合作协议书
2014/10/13 职场文书
教师见习总结范文
2015/06/23 职场文书