使用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之用Python计算
Sep 12 Python
Python中的迭代器漫谈
Feb 03 Python
浅谈Python中数据解析
May 05 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python通过opencv实现批量剪切图片
Nov 13 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
python+openCV利用摄像头实现人员活动检测
Jun 22 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python如何计算语句执行时间
Nov 22 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
javascript 多级checkbox选择效果
2009/08/20 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
javascript实现确定和取消提示框效果
2015/07/10 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
Python 字典与字符串的互转实例
2017/01/13 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
Python实现控制台中的进度条功能代码
2017/12/22 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
Linux机考试题
2015/10/16 面试题
学年末自我鉴定
2014/01/21 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
应聘护士求职信
2014/07/21 职场文书
自主招生学校推荐信
2014/09/26 职场文书
新手初学Java网络编程
2021/07/07 Java/Android
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL