字
字节笔记本
2026年2月23日
ZhihuToNote:知乎收藏批量保存工具
本文介绍 ZhihuToNote,一个用 Go 语言实现的知乎收藏批量保存工具。它可以将知乎收藏夹中的文章自动发送到 Evernote/印象笔记、OneNote、为知笔记和有道笔记中,方便用户离线阅读和长期保存。
项目简介
ZhihuToNote 是一个开源的 Go 语言项目,由 limengchang 开发维护。该项目 fork 自 dingpp/ZhihuToEvernote,在此基础上增加了对 OneNote 和有道笔记的支持。
项目主要功能:
- 批量抓取知乎收藏夹中的文章
- 自动将文章内容发送到多种笔记软件
- 支持分页抓取,可处理大量收藏内容
- 通过邮件方式发送,无需笔记软件 API
核心特性
- 多平台支持:支持 Evernote/印象笔记、OneNote、为知笔记(wiz)、有道笔记
- 批量处理:自动处理分页,可批量抓取整个收藏夹
- 邮件发送:使用 SMTP 邮件发送,配置简单
- 笔记本分类:支持将文章发送到指定笔记本(Evernote/印象笔记)
- 轻量级:单文件可执行程序,无需复杂部署
技术栈
- Go 语言:项目使用 Go 语言开发,编译为单一可执行文件
- goquery:用于 HTML 页面解析和内容提取
- goini:用于配置文件读取
- SMTP:通过邮件方式发送内容到笔记软件
安装指南
前置要求
- Go 1.11+(如需自行编译)
- 有效的邮箱账号(用于发送邮件)
- 目标笔记软件的邮件接收地址
方式一:使用预编译版本
- 从项目
Build目录下载ZhihuToNote.exe - 下载
config.ini配置文件 - 将两个文件放在同一目录下
方式二:自行编译
bash
# 克隆项目
git clone https://github.com/limengchang/ZhihuToNote.git
cd ZhihuToNote
# 安装依赖
go get github.com/opesun/goquery
go get github.com/widuu/goini
# 编译
go build ZhihuToNote.go配置说明
编辑 config.ini 文件,配置以下信息:
ini
[info]
Url = http://www.zhihu.com/collection/20261977 ; 知乎收藏地址
MailHost = smtp.126.com ; SMTP 服务器地址
MailUser = user@126.com ; 发送邮件账号
MailPassword = password ; 邮件密码
[note]
Note = evernote ; 笔记类型:evernote/onenote/youdao/wiz
[evernote]
ReceiveMail = evernote@m.yinxiang.com ; 印象笔记邮件地址
Notebook = 知乎收藏文章 ; 目标笔记本名称
[wiz]
ReceiveMail = wiz@mywiz.cn ; 为知笔记邮件地址
[onenote]
ReceiveMail = me@onenote.com ; OneNote 固定地址
[youdao]
ReceiveMail = save@note.youdao.com ; 有道笔记固定地址注意事项
config.ini文件必须使用 UTF-8 无 BOM 格式- OneNote 用户需要在 OneNote 中添加邮件地址
- 有道笔记用户需要在网页版设置中添加邮件地址
使用示例
基本用法
bash
# Windows
ZhihuToNote.exe
# Linux/Mac
./ZhihuToNote程序会自动:
- 读取配置文件中的知乎收藏地址
- 逐页抓取收藏夹中的问题链接
- 提取每个问题的标题和正文内容
- 通过邮件发送到配置的笔记软件
代码结构
go
// 获取知乎问题列表
func GetZhihuQuestionList(url string) {
urlHeader := "http://www.zhihu.com"
for i := 1; i < 100; i++ {
// 分页处理
url := url + strconv.Itoa(i)
r, err := goquery.ParseUrl(url)
// 提取问题链接并处理
}
}
// 获取问题正文
func GetSubjectBody(url string) {
p, error := goquery.ParseUrl(url)
subject := p.Find("title").Text()
body := p.Html()
// 发送到笔记
}
// 发送邮件
func SendToNote(user, password, host, to, subject, body string) error {
// SMTP 邮件发送逻辑
}工作原理
- 页面抓取:使用 goquery 库解析知乎收藏页面 HTML
- 链接提取:提取问题标题链接,构建完整 URL
- 内容获取:访问每个问题页面,获取标题和正文 HTML
- 邮件构造:将内容封装为 HTML 邮件格式
- SMTP 发送:通过配置的 SMTP 服务器发送邮件
- 笔记接收:笔记软件通过邮件接收并自动保存
项目链接
- GitHub 仓库:https://github.com/limengchang/ZhihuToNote
- 原项目:https://github.com/dingpp/ZhihuToEvernote
- Python 版本:https://github.com/huaisha1224/zhihu_to_evernote
适用场景
- 需要备份知乎收藏夹内容的用户
- 希望离线阅读知乎文章的用户
- 需要将网络文章整理到笔记软件的知识管理者
- 想要自动化收藏整理流程的效率工具使用者
分享: