Python解析谷歌浏览器书签生成markdown和导航

Markdown效果图

在这里插入图片描述

谷歌浏览器可安装 MD-READER插件后直接打开markdown文件

在这里插入图片描述

也可以结合awesome-bookmarks项目编译生成导航网站

项目地址: https://panjiachen.github.io/awesome-bookmarks/

上代码,很简单、就是一个递归

bookmarks.py

# -*- encoding: utf-8 -*-
"""
@File:        bookmarks.py
@Author:      Little duo
@Time:        2022/10/2 13:18
"""
import json
import win32api


class ChromeBookMarks:
    def __init__(self,
                 bookmark_path=rf"C:\Users\{win32api.GetUserName()}\AppData\Local\Google\Chrome\User Data\Default\Bookmarks"):
        """
        :param bookmark_path: 谷歌浏览器书签文件路径, 可以在浏览器中输入 chrome://version 查看个人资料路径, 文件名是 Bookmarks
        """
        self.bookmarks_dict = {}
        self.bookmarks_list = []
        self.markdown_content_list = []
        self.bookmarks_path = bookmark_path

        self.bookmark_file_read()
        self.generate_markdown()
        self.write_db()

    def bookmark_file_read(self):
        """
        读取书签文件
        :return:
        """
        with open(self.bookmarks_path, mode='r', encoding='utf8') as f:
            self.bookmarks_dict = json.load(f)['roots']['bookmark_bar']

    def parse_to_markdown(self, bookmark_obj, level=0):
        """
        解析书签对象
        :param bookmark_obj:
        :param level:
        :return:
        """

        if bookmark_obj['type'] == 'folder' and 'children' in bookmark_obj.keys():
            level += 1
            children = bookmark_obj['children']
            children.reverse()
            bookmark_obj['children'] = children
            for mark in bookmark_obj['children']:
                self.parse_to_markdown(mark, level)
        title_style = ['#', '##', '###', '####', '#####', '######']
        row = f"\n{title_style[level]} {bookmark_obj['name'].strip()}\n"
        if bookmark_obj['type'] == 'url':
            row = f"- [**{bookmark_obj['name'].strip()}**]({bookmark_obj['url']})"
        self.markdown_content_list.append(row)

    def generate_markdown(self):
        """
        生成markdown文件
        :return:
        """
        markdown_head = "# 网站\n**常用网站收藏**\n"
        markdown_content = str()
        markdown_foot = str()
        self.parse_to_markdown(self.bookmarks_dict)
        self.markdown_content_list.reverse()
        markdown_content = '\n'.join(self.markdown_content_list)
        markdown_str = markdown_head + markdown_content + markdown_foot
        import os
        os.makedirs(f'resource/markdown', exist_ok=True)
        with open(f'resource/markdown/README.md', mode='w', encoding='utf-8') as f:
            f.write(markdown_str)


ChromeBookMarks()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值