In Between

表里之间

毛象书签下载

发布于 # 工具

自用工具。放在这里:

在毛象上看到喜欢的嘟文(toot),有三种行为:

当我下载毛象的备份,unzip 之后发现里面有 bookmarks.json,文件的结构很简单,里面的 orderedItems 记录了我收藏的一条一条 toot 的链接,如果这个 toot 是公开的话,点击就只能能在浏览器中看到。

有一些 toot 是我收藏的长文,真的很长,我想把他们下载到本地变成 html 或者 pdf 来阅读。就让 Python 来帮我做这件事。

bookmarks.json -> html

主要就三个步骤:

把 bookmarks.json 放到脚本目录下,然后运行:

python mbd_json_to_csv.py bookmarks.json

这个会自动生成 output/bookmarks.csv,并且告知有多少条 url 写到了 output/bookmarks.csv.

然后运行:

python mbd_csv_to_jsonl.py output/bookmarks.csv 

这个是抓取 一条一条 url 来写到 jsonl 文件,注意有一个默认的 sleep 0.25s,每次抓取,“给服务器喘口气,也保护你自己不被封。”所以根据你数据的多少可能需要等待足够的时间,你可以让它 run 着,然后做自己的,会每隔 20条打印一下进度

最后运行:

python mbd_jsonl_to_html.py output/bookmarks.jsonl

这样生成 html 文件夹,以及里面的 page.

html -> pdf

html to pdf 有很多选择,但我最喜欢用 Chrome print 的方法。如果页数少可以直接打开 command + P,但是我有很多页,所以我用 Chrome 的打印方法,并且去掉页眉页脚:

mkdir -p pdf

for f in html/page_*.html; do
  base=$(basename "$f" .html)
  /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
    --headless \
    --disable-gpu \
    --print-to-pdf-no-header \
    --print-to-pdf="pdf/$base.pdf" \
    "$f"
done

这样我就有了 pdf 文件夹和里面的 pdf,最终使用 Automator 合成到一个 pdf,放在电子阅读器上美美的读。当然也可以自己看一下最后的参数,生成一大页的 pdf,然后转 epub 之类的格式。里面可能有一些空白的网页和 pdf,我想大概是需要授权才能抓的 toot ,但已经足够了,我很满意。