2022-06更新:目前使用SUB Cookie进行脚本运行的方式已被屏蔽,无法使用,如需继续使用需要研究抓包技术,通过APP抓包进行脚本运行


昨天,我从Github上尝试搞了一下wb超话的自动签到脚本

最开始我尝试了从这个仓库搞:happy888888/WeiboTask,但发现使用ALC Cookie登录的方式已经被ban掉了

本来已经打算放弃了,但我又发现了这个仓库:ICE99125/weibo_checkin。这个脚本虽然本身是用来在tx云函数上跑的,但毕竟本身也是个Python写的脚本,所以直接运行其中的index.py倒也是可以运行

脚本扔到了我的树莓派上后,首先是根据作者所给的方式找到名为SUB的Cookie,并将之填写到config.json中,尝试运行了一下,居然就成功了~

但这还没完,既然是在树莓派上面跑的,那么定时自动签肯定有必要,于是乎用到了crontab来完成这一需求。但问题又来了,如何减少风控呢?

我一开始想的是crontab兴许会有一个填写某个时间段,在这个时间段内随机一个时间运行的功能吧?但很可惜的是这种功能并不存在,至少不原生存在……所以,我的解决方法如下:

使用time库的sleep和random库的randint进行一个10分钟内的随机延迟

哈哈,这下随机运行的问题解决了,接下来还有一个问题(虽然上面的图片已经剧透了QAQ),那就是如何获得运行结果呢?毕竟是纯命令运行环境,虽然我也在树莓派上装了宝塔面板,但是每次签完到都去打开网页面板看log文件的结果,也多少有点麻烦了

那么,有没有什么方法,可以不用我主动进行什么操作,就能看到运行结果呢?当然是有的,那就是push一个通知到指定的APP。这里使用了Telegram的API,自己造一个TG机器人就可以收到通知了(灵感来源感谢:@pplulee

from telegram.ext import Updater

class TGbot:

    def __init__(self):

        self.updater = Updater(“API KEY”)

    def sendmessage(self, text):

        self.updater.bot.send_message(chat_id=xxx, text=text)

tgbot = TGbot()

 

使用上面这样的方式创一个TG机器人推送的类并且创建一个对象,然后后续就像上面图片中一样使用tgbot.sendmessage(“”)即可在Telegram中收到消息啦~