使用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 相关文章推荐
Python2.x版本中cmp()方法的使用教程
May 14 Python
python实现爬取千万淘宝商品的方法
Jun 30 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Django实现文件上传和下载功能
Oct 06 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 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 5.0对象模型深度探索之类的静态成员
2008/03/27 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
特殊字符、常规符号及其代码对照表
2006/06/26 Javascript
二级域名转向类
2006/11/09 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
vue.js删除动态绑定的radio的指定项
2017/06/02 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
python 字符串格式化代码
2013/03/17 Python
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
Python何时应该使用Lambda函数
2019/07/02 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
土木工程师岗位职责
2013/11/24 职场文书
教师自我鉴定
2013/12/13 职场文书
留学推荐信怎么写
2014/01/25 职场文书
社团活动总结
2014/04/28 职场文书
园林技术专业求职信
2014/07/28 职场文书
2014年护士长工作总结
2014/11/11 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
Python装饰器详细介绍
2022/03/25 Python