使用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 全文检索引擎详解
Apr 25 Python
Python测试人员需要掌握的知识
Feb 08 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Pycharm如何导入python文件及解决报错问题
May 10 Python
python中pyqtgraph知识点总结
Jan 26 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
我对PyTorch dataloader里的shuffle=True的理解
May 20 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
php4的session功能评述(三)
2006/10/09 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP删除指定目录中的所有目录及文件的方法
2015/02/26 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
基于JavaScript 类的使用详解
2013/05/07 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
js实现楼层导航功能
2017/02/23 Javascript
详解react-redux插件入门
2018/04/19 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python 含参构造函数实例详解
2017/05/25 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
解决python 上传图片限制格式问题
2019/10/30 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
合作经营协议书
2014/04/17 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
普通党员对照检查材料
2014/09/24 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript
Redis基本数据类型Set常用操作命令
2022/06/01 Redis