使用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的爬虫包Beautiful Soup中用正则表达式来搜索
Jan 20 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
python实现百度语音识别api
Apr 10 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
python cv2截取不规则区域图片实例
Dec 21 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
keras 权重保存和权重载入方式
May 21 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写的小东西
2006/12/06 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
ie focus bug 解决方法
2009/09/03 Javascript
jquery tools 系列 scrollable学习
2009/09/06 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
jcrop基本参数一览
2013/07/16 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
js中document.write的那点事
2014/12/12 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python 导入文件过程图解
2019/10/15 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
建筑施工员岗位职责
2013/11/26 职场文书
车间副主任岗位职责
2013/12/24 职场文书
创建青年文明号材料
2014/05/09 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
圆明园观后感
2015/06/03 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL