最近在捣腾我的 Timeline 时间线项目,希望将我在不同平台上的发言和活跃记录同步过来,在独立的站点上按照创建时间倒序呈现。
过去,我尝试把这个想法放到 Telegram 上实现,把发言和记录同步到我的频道上。但是格式转换的繁杂以及自由度上的限制让我大费周章,加之增量开设的同步内容会以消息的方式一条一条添加到末尾,无法按时间排序,最终我放弃了这个方案。
言归正传,在项目开发的过程中,我遇到的一个相对复杂的场景即 QQ 空间说说的同步。本文事无巨细地记录下我在处理 QQ 空间说说同步的过程中,做了哪些工作,希望为有相应需求的厚米们带来一些灵感。
同步 QQ 空间说说
同步方案的探索与确定
非常自然而然的,笔者设想使用 Puppeteer 模拟用户操作,打开 QQ 空间网页端,输入账号和密码,进入到个人主页,根据 DOM 结构爬取得到说说的信息。同样非常自然而然的,在切换登录模式(从二维码登录到账号密码登录)步骤就卡着了,模拟点击切换登录模式按钮无效。笔者并非爬虫专家,没有此类问题的对抗经验,在搜索无果后无奈放弃。再想到后续可能还要处理登录安全验证,或处理别的防爬手段,判断 Puppeteer 的方案其实并不合适 QQ 空间说说的同步。