如何从印象笔记迁移到Notion
最近几次访问国内印象笔记的体感非常不好,不是网络的问题,估计就是服务器问题了,于是想找找有没有其他的平台可以使用。接着就找到了Notion,之前也听说过,抱着试一试的态度试了下,感觉还可以,接下来就是数据迁移工作了。
导出印象笔记数据
因为自己使用的是linux,所以网上找了一个教程,使用python第三方库完成整个数据的导出。
- 安装evernote-backup库
pip install evernote-backup
至于如何安装python和使用pip,自行搜索。
2. 初始化数据库
evernote-backup init-db --backend china
国内版本需要--backend china后缀。
按提示输入用户名和密码即可。
运行这个命令如遇到SSL错误,报错信息如下:
SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)
在终端粘贴下面的命令:
ln -s /etc/ssl/* /Library/Frameworks/Python.framework/Versions/3.9/etc/openssl
- 下载笔记数据
evernote-backup sync
支持断点续传,如果笔记内容很多,可能需要很久,我的1000篇笔记下载了接近12小时。
- 导出enex文件
evernote-backup export output_dir/
导出到本地文件夹。
现在所有笔记文件都在这个文件夹里了。
使用工具将所有笔记导入只Notion
- 安装shell-retry库
pip install shell-retry
- 获取Notion token
登录https://www.notion.so
,右键检查元素,刷新页面,找到应用选项页里的token-v2,复制详细内容。
- 新建脚本
touch process_enex_files.sh
脚本内容, 把上一步找到的token复制到脚本里:
#!/bin/bash
output_dir="./output_dir"
token="xxx-your token-xxxx"
# 遍历指定目录下的所有 .enex 文件
find "$output_dir" -type f -name "*.enex" -print0 | while IFS= read -r -d '' file; do
# 提取文件名
filename=$(basename "$file")
echo "---"
echo "$file"
# 执行指定命令,重复3次,间隔5-30秒不等
shell-retry --retry-count 1 --interval-max 10 --interval-min 3 -- enex2notion --token "$token" --retry 1 --skip-failed --done-file "done_$filename.txt" "$file"
echo "---"
done
在其他人的基础上增加了retry 1 和skip-failed选项,避免一直重复尝试(遇到图片会失败),以及遇到失败跳过。
- 执行脚本
使用命令行执行脚本
bash process_enex_files.sh
我在执行的时候遇到SSL证书错误的问题,github上找到解决方案:
https://github.com/vzhd1701/enex2notion/issues/119
只需要在shell里执行:
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
然后再执行bash脚本,目前还在执行,持续更新。