python导出chrome书签到markdown文件的实例代码

yizhihongxing

下面详细讲解如何使用 Python 导出 Chrome 书签到 Markdown 文件的实例代码。

准备工作

在开始之前,我们需要安装两个 Python 库:pandaspywin32。使用以下命令可安装:

pip install pandas
pip install pywin32

此外,我们还需要从 Chrome 中导出书签文件 bookmarks_YYYY_MM_DD.html,其中 YYYY_MM_DD 是文件生成日期。我们可以通过 Chrome 浏览器中的 书签管理器 -> 导出书签 来生成该文件。

注意:在进行文件导出时,需要勾选 包括网站描述和网址 选项,方便后面的处理。

实现过程

接下来就是实现过程了。将以下代码复制到 .py 文件中:

import pandas as pd
import win32com.client as win32

def chrome_bookmark_to_markdown(file_name):
    """
    将 Chrome 书签导出为 Markdown 格式
    :param file_name: Chrome 导出的书签文件路径
    """
    # 读取 HTML 文件
    bookmarks_list = pd.read_html(file_name, header=0)[0]

    # 创建 markdown 文件
    markdown_file_name = f'{file_name[:-5]}.md'
    markdown_file = open(markdown_file_name, mode='w', encoding='utf-8')

    # 将书签名称和 URL 写入 markdown 文件
    for index, row in bookmarks_list.iterrows():
        if '网址' in row[0]:
            markdown_file.write(f'- [{row[1]}]({row[2]})\n')
        else:
            markdown_file.write(f'\n## {row[0]}\n\n')

    markdown_file.close()

    # 将 markdown 文件转换为 PDF 文件
    word = win32.DispatchEx('Word.Application')
    docx_file_name = f'{file_name[:-5]}.docx'
    docx_file = f'{file_name[:-5]}.docx'
    word_doc = word.Documents.Open(markdown_file_name)
    word_doc.SaveAs(docx_file, FileFormat=16)  # FileFormat=16表示保存为PDF文件
    word_doc.Close()
    word.Quit()

代码中的 chrome_bookmark_to_markdown() 函数接受一个参数 file_name,为 Chrome 导出的书签文件路径,函数中包含两个主要步骤:

  1. 读取 Chrome 书签 HTML 文件,并将书签名称和 URL 写入 Markdown 文件。
  2. 将 Markdown 文件转为 PDF 文件。

函数中使用了 Python 标准库 pandas 来读取 Chrome 书签 HTML 文件,并转换为 DataFrame 对象。之后,将书签名称和 URL 写入 Markdown 文件,这里使用了 Pandas 的 iterrows() 函数,对 DataFrame 的每一行进行迭代。最后,使用 pywin32 库将 Markdown 文件转换为 PDF 文件。

示例说明

我们来看两个示例说明。

示例一

假设我们从 Chrome 中导出的文件名为 bookmarks_2022_01_01.html,我们可以将该文件名作为 chrome_bookmark_to_markdown() 函数中的参数传递,以将其转换为 Markdown 文件和 PDF 文件。

chrome_bookmark_to_markdown('bookmarks_2022_01_01.html')

这段代码会将 Chrome 导出的书签文件 bookmarks_2022_01_01.html 转换为 Markdown 文件和 PDF 文件,并命名为 bookmarks_2022_01_01.mdbookmarks_2022_01_01.pdf

示例二

假设我们想要将导出的书签文件 E:/chrome_bookmarks/bookmarks_2022_01_01.html 转换为 Markdown 文件和 PDF 文件,并保存到 E:/markdown_files 文件夹下。

import os

bookmarks_file = 'E:/chrome_bookmarks/bookmarks_2022_01_01.html'
markdown_folder = 'E:/markdown_files'

# 确保 markdown 文件夹存在
if not os.path.exists(markdown_folder):
    os.makedirs(markdown_folder)

# 调用 chrome_bookmark_to_markdown() 函数并指定 markdown 文件夹
os.chdir(markdown_folder)
chrome_bookmark_to_markdown(bookmarks_file)

这段代码会将 Chrome 导出的书签文件 bookmarks_2022_01_01.html 转换为 Markdown 文件和 PDF 文件,并保存到 E:/markdown_files/bookmarks_2022_01_01.mdE:/markdown_files/bookmarks_2022_01_01.pdf

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python导出chrome书签到markdown文件的实例代码 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Python中死锁的形成示例及死锁情况的防止

    Python中死锁的形成示例及死锁情况的防止 什么是死锁? 死锁指的是多个进程(或线程)因相互等待对方持有的资源而陷入僵局,无法继续向前执行。在 Python 中,由于 GIL(全局解释器锁)的存在,多线程下使用锁可能会产生死锁问题。 死锁的形成 举一个简单的例子,假设有两个线程 A 和 B,共享着两把锁 lockA 和 lockB。如果线程 A 先锁定了 …

    python 2023年5月13日
    00
  • 关于Python中的元组介绍

    当谈到Python的数据类型时,我们通常会想到列表、字典、集合等。不过还有一个十分有用但往往被忽视的数据类型——元组。本文将详细介绍元组,包括定义、访问、修改以及元组常用操作等。 什么是元组? 元组(Tuple)是Python中一种不可变的序列数据类型。它由值(元素)组成,多个值之间用逗号分隔,通常被括在圆括号中。元组的值可以是任意类型,包括数字、字符串、列…

    python 2023年5月14日
    00
  • python list是否包含另一个list所有元素的实例

    以下是详细讲解“Python List是否包含另一个List所有元素的实例”的完整攻略。 在Python中,可以使用多种方法判断一个List是否包含另一个List所有元素。本文将介绍两种常用的方法,并提供两个示例说明。 方法一:使用all()函数和in关键字 可以使用all()函数和in关键字的方法判断一个List是否包含另一个List所有元素。例如: ls…

    python 2023年5月13日
    00
  • python beautifulsoup4 模块详情

    Python BeautifulSoup4模块详情 BeautifulSoup4是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元素。在Python爬虫中,BeautifulSoup4是常用的工具之一。本文将详细讲解BeautifulSoup4模块的使用方法。 安装BeautifulSoup4 在使用Beauti…

    python 2023年5月15日
    00
  • python基础之模块的导入

    下面是关于“Python基础之模块的导入”的详细讲解,包括模块导入的方法和示例说明。 什么是模块? 在 Python 中,一个程序文件被称为模块。一个模块是一个包含 Python 定义和语句的文件,其名称以 .py 结尾。模块使我们能够组织代码,使其易于理解和使用。我们可以定义功能相似的代码块在同一个模块中,然后在我们的程序中导入它们,而不必在程序中多次重复…

    python 2023年6月3日
    00
  • 浅谈Python爬取网页的编码处理

    在Python爬虫中,网页的编码处理是一个非常重要的问题。如果不正确地处理编码,可能会导致乱码或无法解析的情况。本攻略将详细讲解Python爬取网页的编码处理,包括如何自动识别编码、如何手动指定编码、以及如何处理乱码。同时,提供两个示例,演示如何处理不同编码的网页。 自动识别编码 在Python爬虫中,我们可以使用requests库自动识别网页的编码。req…

    python 2023年5月15日
    00
  • pip报错“TypeError: ‘NoneType’ object is not callable”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “TypeError: ‘NoneType’ object is not callable” 错误。这个错误通常是由于 Python 模块导入问题导致的。以下是详细讲解 pip 报错 “TypeError: ‘NoneType’ object is not callable” 的原因与解决办法,包含两条实…

    python 2023年5月4日
    00
  • python中把元组转换为namedtuple方法

    要在Python中将元组转换为namedtuple,可以使用collections库中的namedtuple函数。以下是详细步骤: 步骤1:导入collections库中的namedtuple函数 from collections import namedtuple 步骤2:定义namedtuple中元素的名称和数量,声明一个命名元组类 Person = n…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部