酷Q机器人部署过程记录
酷Q机器人部署过程记录
- 终终终于快要完工了,AWSL,这里记录一下整个过程(以及所有踩过的坑)
源自于Comet OJ群一位大佬自制的群机器人,能自动查询各类算法竞赛平台的比赛时间,还能提醒你,于是产生了兴趣,前去求学。然后大佬二话不说 抛给我一个知乎链接:小明机器人来了,于是踏上造机器人的征途。。。
这里我整理了一下,想自己搭一个这样的机器人,那么你需要掌握以下
前置姿势:
- Python基本语法+特性(闭包、装饰器、面向对象 等)
- Python异步IO(协程的实现)
- 基本的Python爬虫知识(简单的单线程爬虫即可),包括requests库的使用,以及熟悉至少一种网页解析库(re、bs4、xpath 等)
最基础的code ability(一些简单计算和逻辑的实现)
会看官方文档的能力
对,就这么简单(会一点点python+一点点爬虫就可以搞了)
按照顺序来,第一部开始学Nonebot,打开官方文档,直接搞起:
可以看到他的原理(基于Python异步IO+酷Q+CQHTTP插件 反向WebSocket通信)
- 第一步:安装NoneBot
首先保证自己的python版本不低于3.7,然后pip install nonebot
一步到位
然后你可能会崩掉(特别是在服务器上安装的时候),所以先提前把一些常用库安装好吧
- 第二步 安装库Q和插件
酷Q版本发布,Air免费,Pro要捐钱给开发者(还蛮贵的),Pro能发图片!(可惜我没有)
到这里,其实你完全可以去应用发布专栏找别人开发好的插件拿来直接用,但是这就违背了我学技术的初心,于是果断(下载几个好玩的插件先玩起来)去学技术
- 第三步 下载CQHTTP插件
到这里按照要求下载插件,然后就没了,万事俱备只欠东风了
PS:如果插件不能用了,可能是没更新,去看看新版本吧
然后跟着教程来,我的github就有了mybot这个repo
里面大部分配置都是我自己写的爬虫代码和异步交互代码,到现在,花了几天时间完成了以下功能:
返回学校VPN网址、爬取学校新闻、爬取教务处新闻、从用户获取搜索关键字并搜索B站视频、爬取B站日榜、爬取欧拉计划题目、爬取百度百科/维基百科词条内容、通知个人定时打卡(个人的信息存储在json格式文件中)
其实都是些不需要动脑子的活啦~,爬虫几乎都是用requests+XPath搞的(没有用到Selenium模仿电脑操作以及验证码识别这种稍微高级一点的实现,毕竟学校这种网站也没什么反爬虫措施QAQ,噢是我太菜了)
(目前已经得到辅导员认可,已经投入年级群使用,hiahiahia~~)
当然这里要感谢的还是那位神秘的大佬,给我提供了这么好的学习资源
此后,我又尝试过购买阿里云的服务器(Windows 2012 server)来实现服务器部署机器人,因为这样就不需要我的电脑24小时都开着啦,然而我快要成功了,但是还是没成功,BUG很严重,机器人甚至不会理你,而且服务器太卡了,我不知道是不是我的问题,这几天在研究研究,争取搞定它,一劳永逸啊!
- 2020.4.24 更新
暂时不搞云服务器了(阿里云的windows服务器为什么这么卡),就把自己的TP X230 作为服务器吧,不想再折腾了。。。
- 2020.4.25 更新
今天上午出了点小bug,因为我发现大佬的repo提供的代码居然是这样的:
1 |
|
于是果断改进为下面这种:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!