使用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编程中time模块的使用
Nov 20 Python
Python使用asyncio包处理并发详解
Sep 09 Python
python清理子进程机制剖析
Nov 23 Python
实践Vim配置python开发环境
Jul 02 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
弄清Pytorch显存的分配机制
Dec 10 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
python re模块和正则表达式
Mar 24 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
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
Python解析xml中dom元素的方法
2015/03/12 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
Python控制Firefox方法总结
2019/06/03 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
利用python计算时间差(返回天数)
2019/09/07 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
体育学院毕业生自荐信
2013/11/03 职场文书
智能电子应届生求职信
2013/11/10 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
员工安全生产责任书
2014/07/22 职场文书
企业党建工作总结2015
2015/05/26 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书