使用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编程中进行迭代和遍历
Jan 19 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
详解python3中zipfile模块用法
Jun 18 Python
python如何实现一个刷网页小程序
Nov 27 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
学习Django知识点分享
Sep 11 Python
Python创建空列表的字典2种方法详解
Feb 13 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
简单了解pytest测试框架setup和tearDown
Apr 14 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+oracle 分页类
2006/10/09 PHP
php笔记之常用文件操作
2010/10/12 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
Javascript 自定义类型方法小结
2010/03/02 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python函数式编程
2017/07/20 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
假期安全教育广播稿
2014/10/04 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
通讯稿格式及范文
2015/07/22 职场文书
2016年母亲节寄语
2015/12/04 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python