使用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 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
使用Python设置tmpfs来加速项目的教程
Apr 17 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
python事件驱动event实现详解
Nov 21 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
python数据类型强制转换实例详解
Jun 22 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
Python+Appium实现自动抢微信红包
May 21 Python
分享7个 Python 实战项目练习
Mar 03 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 定界符 使用技巧
2009/06/14 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
php动态变量定义及使用
2015/06/10 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
浅谈js中的闭包
2015/03/16 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
清除输入框内的空格
2016/12/21 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
简单讲解Python中的闭包
2015/08/11 Python
python实现装饰器、描述符
2018/02/28 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
Python文件操作基础流程解析
2020/03/19 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
餐饮业创业计划书范文
2014/01/06 职场文书
《王二小》教学反思
2014/02/27 职场文书
物业品质提升方案
2014/06/08 职场文书
培训科主任岗位职责
2014/08/08 职场文书
母亲去世追悼词
2015/06/23 职场文书
高一作文之暖冬
2019/11/09 职场文书