使用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代理抓取并验证使用多线程实现
May 03 Python
python生成指定尺寸缩略图的示例
May 07 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
python实现聚类算法原理
Feb 12 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
python如何操作mysql
Aug 17 Python
一些关于python 装饰器的个人理解
Aug 31 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基于curl重写file_get_contents函数实例
2016/11/08 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
Json序列化和反序列化方法解析
2013/12/19 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
Node.js实现文件上传
2016/07/05 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
Python编码爬坑指南(必看)
2016/06/10 Python
Python类的动态修改的实例方法
2017/03/24 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
Delphi软件工程师试题
2013/01/29 面试题
小学庆六一活动方案
2014/02/28 职场文书
保险经纪人求职信
2014/03/11 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
施工安全员岗位职责
2015/04/11 职场文书
元旦晚会开场白
2015/05/29 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
win10搭建配置ftp服务器的方法
2022/08/05 Servers