使用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
投稿
猜你喜欢
- 这里介绍的MySQL相关知识,并不是针对那些想学习DBA的同学,而是针对那些想转行、从事数据分析行业的同学。下面这些知识点,是我学习MySQ
- 上次我重新修改了UBB的转换后,又很多朋友反映日文显示的时候出错了。我在本地测试了一下,结果出现了 Invalid procedure ca
- 本文实例为大家分享了python实现图片横向和纵向拼接的具体代码,供大家参考,具体内容如下直接上代码:# -*- coding:utf-8
- 在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可
- 已经获取微信公众号发布的图片,但不能正常显示 ,提示:此图片来自微信公众平台 未经允许不得引用。 这是怎么回事呢?遇到这
- 前言在这篇文章中,准备用 Python 从头开始实现一个全连接的神经网络。你可能会问,为什么需要自己实现,有很多库和框架可以为我们做这件事,
- 在ASP输出页面只是调出数据库里内容展现给用户看没有使用SESSION等动态属性,是可以CACHE的,以加快访问速度具体操作方法如下:在as
- 数据库的约束就是关系型数据库给我们提供的一种"校验数据"合法性的机制1. NULL约束创建表时,可以指定某列不为空cre
- 前不久,ColourLovers.com公布了一项调查结果。他们发现,美国前100大网站的Logo,主要使用12种颜色。其中,采用蓝色的网站
- 如何做一个文本书写器?我们有下面的的函数,可做“文本书写器”:<%function WriteToFile(FileName
- 因AJAX接受数据时服务器默认是采用UTF-8的编码形式进行传送,所以在很多GB2312中文网页中应用AJAX回传数据经常会发生中文乱码。解
- 我就废话不多说了,大家还是直接看代码吧~代码如下type KDRespBody struct { Errcode int `j
- 前言:前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍。相对于其他几
- 安装部分所需文件在最下方提供STEP1双击mysql-installer-web-community-8.0.18.0.msi进行按钮如果出
- web数据抓取是一个经常在python的讨论中出现的主题。有很多方法可以用来进行web数据抓取,然而其中好像并没有一个最好的办法。有一些如s
- 电脑环境:windows7 64位 python3.7问题:在PyCharm中,使用setting下
- 本文为大家分享了使用navicat将csv文件导入mysql的具体代码,供大家参考,具体内容如下1.打开navicat,连接到数据库并找到自
- python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。为什么要在2.2中引进new style class呢?官
- 引言在Scrapy中,在很多种情况下,需要一层层地进行爬取网页数据,就是基于url爬取网页,然后在从网页中提取url,继续爬取,循环往复。本
- 1.索引是什么1.1 认识索引先创建一个简单的DataFrame。myList = [['a', 10, 1.1], &nb