原先一直用 IFTTT 自动同步微博到 Day One,可以把自己日常的事情笔记方便地记录到日记中。不过 2020 年开始,微博不开放这个 API 接口了。
失效之后,一直没管它。最近心血来潮,到在网上搜索一番,找到了方法——Python + IFTTT Webhooks + Crontab 定时抓取微博到 Day One。
分三步:
- 用爬虫抓取自己的微博,缓存到本地 CSV 文件中。
- 读取本地 CSV 数据,用 Python 发给 IFTTT,IFTTT 自动发送 Day One。
- 创建定时任务,可以定时爬取、发送,发送完后清除本地缓存。
1、下载自己微博内容
爬微博的代码不用自己写,Github 上有现成的脚本,功能很强大。把代码下载到本地,然后步骤如下:
1、打开 powershell,路径切换到weibo-crawler
下。
2、安装依赖。前提是安装好了 python 和 pip。
3、修改配置文件config.json
,user_id_list
改成自己微博 id。since_date
设为 1,表示只取近 1 天的微博。
4、运行爬虫,如果微博的数据可以下载到本地 CSV 文件,代表成功了。
2、用 IFTTT 发送 Day One
IFTTT 网站设置
在 IFTTT 网站上设置一个动作:如果接收到一个 Web 请求,就创建一篇日记。
本地 Python 脚本
然后在本地的weibo-crawler
文件夹下创建一个ifttt.py
的文件,将以下内容复制进去,注意path
、event_name
、key
根据自己情况修改。
path
为本地 CSV 路径。event_name
为自己在 IFTTT 上创建的触发器名称。key
为 WebHooks 的密钥,可在 [IFTTT](Webhooks works better with IFTTT) 点击Documentation
查看。
3、Win10 每日定时任务创建
前两步完成后,功能已经实现,然后每次需要手工触发显然太麻烦了,于是决定用 Win10 定时任务每天自动跑一遍,把微博下到本地 CSV 为保护,发送给 Day One,然后清除本地 CSV 文件。
定时任务设置方法如下:
在电脑-管理-系统工具-任务计划程序库-Miscrosoft 下右键,创建基本任务,设置定时任务名称、触发时间、触发频率、触发程序、触发程序代码及触发程序代码所在路径。注,触发程序代码所在路径不能不写,否则运行时不能自动删除上一次生成的 CSV。