使用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安装Imaging报错:The _imaging C module is not installed问题解决方法
Aug 22 Python
简单了解OpenCV是个什么东西
Nov 10 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python 字符串追加实例
Jul 20 Python
Python及Pycharm安装方法图文教程
Aug 05 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
基于OpenCV的路面质量检测的实现
Nov 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php 更新数据库中断的解决方法
2009/06/05 PHP
PHP 日常开发小技巧
2009/09/23 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
JS input 数字验证代码
2009/07/30 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
微信小程序图片自适应实现解析
2020/01/21 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
个人廉洁自律承诺书
2014/03/27 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
小学教代会开幕词
2016/03/04 职场文书
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python