type
status
date
slug
summary
tags
category
icon
password
😀
一个python实现的论坛自动阅读自动点赞工具
 
最近活跃在 linux.do 论坛,是个 discourse 程序搭起来的技术论坛。它沿用 discourse 社区的信任机制,3级信任需要阅读两万个帖子,如果不是天天泡在论坛是比较难达到的。另外一个写脚本的原因是,它有个排行榜功能,看100个回帖可以获得1积分,激起了我的胜负欲。
 
论坛刷阅读数的方法五花八门。最简单的是把盖楼最高的帖子汇总到一起,手动翻。其次有用无头(headleass)浏览器实现的刷帖子数量的脚本,基本就是模仿人的操作,输入鼠标滚轮滚动的信号触发本地的js脚本。还有的直接 selenium 操作浏览器刷帖子。我觉得这种太笨重,不能持久。想写个函数来定时帮我刷帖子阅读和点赞。于是这篇记录就有了。我顺便实现了个任务框架,可以记录 session 中变化的 cookie,比如X-Csrf-Token ,这个可能是变化的,如果不能保存,下次请求就会报错。这样下次定时任务也不用担心被禁止。
 
这里贴个脚本实现,Task 是任务类的抽象父类,子类要实现抽象方法 step。step 会从父类的 run 方法里调用。定时任务框架用的 apscheduler 。因为怕被管理员盯上,我只定时每小时刷一次,一天已经刷了一万个阅读数。
notion image
 
主要的困难点在于这个阅读是怎么判定的,为此我开着浏览器调试模式观察了半天。最后发现是https://linux.do/topics/timings 接口去上报的。