使用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搭建HTTP服务器和FTP服务器
Mar 09 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
使用python存储网页上的图片实例
May 22 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
python 阶乘累加和的实例
Feb 01 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
Python中常用的8种字符串操作方法
May 06 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
python实现磁盘日志清理的示例
Nov 05 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
js 表单验证方法(实用)
2009/04/28 Javascript
用cssText批量修改样式
2009/08/29 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
在JS中操作时间之getUTCMilliseconds()方法的使用
2015/06/10 Javascript
jqTransform美化表单
2015/10/10 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
Python 功能和特点(新手必学)
2015/12/30 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python基础知识_浅谈用户交互
2017/05/31 Python
Python简单的制作图片验证码实例
2017/05/31 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
迟到检讨书300字
2014/02/14 职场文书
农业开发项目建议书
2014/05/16 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
入队仪式主持词
2015/07/04 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL