浏览器书签智能分类

浏览器书签智能分类工具

最近发现浏览器的书签越来越乱了,主要是因为自己太懒,其次之前建的分类太多又乱,重新手动整理确实比较烦。因此有了这个小项目。借助智谱AI的力量对书签进行重新分类。

项目简介

本工具用于自动整理浏览器书签,通过AI智能分类技术,将杂乱的书签按照主题自动归类,并且重新生成结构化的书签文件。

功能特性

  • 自动提取书签信息
  • 智能分类书签内容
  • 分类智能生成
  • 生成HTML格式书签文件,可直接导入浏览器
  • 自动清理临时文件

使用说明

准备工作

  1. 获取智谱AI API密钥
  2. 准备浏览器导出的书签HTML文件

快速开始

  1. 下载脚本
  2. 修改CONFIG配置中的INPUT_FILEOUTPUT_FILE
  3. 修改CONFIG配置中的API_KEY
  4. 运行脚本:
    python 浏览器书签文件重新分类.py
    
  5. 查看生成的分类结果文件bookmarks.html

配置文件说明

在脚本开头的CONFIG字典中可配置以下参数:

  • API_KEY: 智谱AI API密钥(必填)
  • INPUT_FILE: 输入的书签HTML文件路径
  • EXTRACTED_FILE: 提取的临时文件路径
  • CLASSIFIED_FILE: 分类结果Markdown文件路径
  • OUTPUT_FILE: 最终输出的HTML书签文件路径
  • DEFAULT_CATEGORIES: 默认分类列表

代码结构

# 主要功能模块
1. 配置参数 (CONFIG)
2. AI客户端初始化 (zhipu_client)
3. 书签提取 (extract_bookmark_info)
4. 书签分类 (classify_bookmark)
5. 分类创建 (create_new_category)
6. 格式转换 (md_to_netscape)
7. 文件清理 (cleanup_temp_files)

脚本代码详细说明

浏览器书签文件重新分类脚本详细说明

1. 配置参数
CONFIG = {
   
    'API_KEY': "9e2458a8acf46274d1c1b9418eec500c.oBojpibVHt3IyXnz",  # 智谱API密钥,必填
    'INPUT_FILE': 'bookmarks_2025_1_3.html',  # 输入文件,必填
    'EXTRACTED_FILE': 'extracted_bookmarks.txt',  # 提取的临时文件
    'CLASSIFIED_FILE': 'classified_bookmarks.md',  # 分类结果文件
    'OUTPUT_FILE': 'bookmarks.html',  # 最终输出文件
    'DEFAULT_CATEGORIES': [  # 默认分类
        '编程语言',
        '人工智能', 
        '数据科学',
    ]
}
  • API_KEY: 用于调用智谱AI API的密钥。
  • INPUT_FILE: 输入的HTML格式浏览器书签文件路径。
  • EXTRACTED_FILE: 提取的书签信息保存为文本文件的路径。
  • CLASSIFIED_FILE: 分类后的书签信息保存为Markdown文件的路径。
  • OUTPUT_FILE: 最终生成的HTML格式书签文件路径。
  • DEFAULT_CATEGORIES: 预定义的默认分类列表。
2. 初始化客户端
zhipu_client = ZhipuAI(api_key=CONFIG['API_KEY'])
  • 使用提供的API密钥初始化智谱AI客户端,用于后续与AI模型交互。
3. 获取AI响应
def get_llm_response(sysPrompt, questionPrompt):
    response = zhipu_client.chat.completions.create(
        model="GLM-4-Plus",  # 填写需要调用的模型编码
        messages=[
            {
   "role": "user", "content": sysPrompt},
            {
   "role": "assistant", "content": "你好,请告诉我你需要分类的书签?"},
            {
   "role": "user", "content": questionPrompt},
        ],
    )
    return response.choices[0].message.content
  • 定义一个函数get_llm_response,用于向AI模型发送系统提示和用户问题,并返回模型的响应内容。
4. 读取并解析HTML文件
with open(CONFIG['INPUT_FILE'], 'r', encoding='utf-8') as file:
    html_content = file.read()

soup = BeautifulSoup(html_content, 'html.parser')
bookmarks = soup.find_all('a')

bookmark_info = []
for bookmark in bookmarks:
    href = bookmark.get('href')
    add_date = bookmark.get('add_date')
    icon = bookmark.get('icon')
    text = bookmark.text.strip().replace('\n', '').replace('\t', '').replace('\r', '').replace(' ', '')
    
    bookmark_info.append({
   
        'URL': href,
        'Text': text
    })

with open(CONFIG['EXTRACTED_FILE'], 'w', encoding='utf-8') as f:
    for info in bookmark_info:
        f.write(f"Name: {
     info['Text']}, URL: {
     info['URL']}\n")
  • 读取输入的HTML书签文件内容。
  • 使用BeautifulSoup解析HTML,提取所有的<a>标签作为书签。
  • 将每个书签的URL和名称保存到bookmark_info列表中。
  • 将提取的书签信息保存到临时文件EXTRACTED_FILE中。
5. 分类书签
def extract_bookmark_info(line):
    name_match = re.search(r'Name: ([^,]+)', line)
    url_match = re.search(r'URL: (https?://[^\s]+)', line)
    if not name_match or not url_match:
        return None, None
    return name_match.group(1), url_match
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝凡FR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值