网络编程
位置:首页>> 网络编程>> Python编程>> 使用Python解析Chrome浏览器书签的示例

使用Python解析Chrome浏览器书签的示例

作者:温欣爸比  发布时间:2023-03-12 01:14:34 

标签:Python,Chrome,浏览器,书签

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)

来源:https://wxnacy.com/2020/10/02/python-parse-chrome-bookmarks/

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com