使用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 29 Python
python打开url并按指定块读取网页内容的方法
Apr 29 Python
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
python 性能提升的几种方法
Jul 15 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
python交互式图形编程实例(一)
Nov 17 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python统计单词出现的次数
Apr 04 Python
python中字符串的操作方法大全
Jun 03 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python实现可逆简单的加密算法
Mar 22 Python
关于Python-faker的函数效果一览
Nov 28 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 file_exists问题杂谈
2012/05/07 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
酒店开业庆典主持词
2014/03/21 职场文书
观看信仰心得体会
2014/09/04 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
2014年班干部工作总结
2014/11/25 职场文书
2015年话务员工作总结
2015/04/29 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery