Csdn自动化评价功能
前言
之前一段时间,看到一些博主在文章下自动评论,当然我是欢迎大家为我的文章进行评论。我也思考了一下,如果是我来进行开发自动化评价,我要如何操作。
首先,我们需要思考的问题,我们先一个一个的把它们列出来。
1、获取文章,并获取到文章id
2、获取到评价的接口。
3、如何处理重复评价。
4、系统中断如何处理。
正文
一、分析获取文章id
进入csdn,找到文章列表,按F12,分析文章数据返回接口和返回数据。我们提取主要的数据。
然后去获取到我们所需要的接口,详细步骤这里就不说明了。
使用相同的方式,在自己的文章下面发送一条消息,就可以获取到发送评论的接口。
接着,我们来思考一下我们的流程。
二、流程设计
我们可以采取两种方式:
1、获取到文章列表,然后获取到文章id,然后查询是否评论,评论就跳过,没有评论就评论。
优点:不需要储存任何数据,减少操作。
缺点:文章重复查询,重复查询是否评论,效率不高。
2、我们先将获取到的文章列表全部储存到数据库,然后通过获取数据库未评价文章id,进行评价,评价完成之后,标记为已评价,无需查询是否已评价。
优点:效率相对1提高,不会重复查询是否评论。
缺点:需要数据库服务器,需要掌握数据库相关操作。
这里我们采用第二种方式,但我们之前的文章可能有我们评论过的,所以,我们还是需要判断一下是否有评论过,于是我们的流程变了。
三、数据库设计
我们已经设计好流程了,然后来设计数据库字段。
我们需要文章id,文章url,作者,是否评论字段,是否点赞字段,当然你还可以增加其他的一些字段。
我们开始创建表:(防止昵称有表情符号,编码不使用utf8,采用utf8mb4)
这样,我们就创建好了我们的数据表。
四、操作数据库
我们已经建好了数据库,我们现在思考一下,我们需要用到哪些操作。思考方向,始终围绕着增删改查来思考,这样你会更加清楚。
1、增加:插入文章列表数据
2、删除:这里我们用不到
3、修改:未评论更新为已评论
4、查询:查询未评论的文章id,查询该文章列表是否插入过数据库
因此我们编写方法:
五、获取csdn文章数据
我们继续获取csdn文章列表(从排行榜中获取):
这样,我们就获取到数据,并将数据插入到数据库中。
六、查询是否已评论
我们已经从数据拿到数据,需要查询数据是否我们在以前就评论过,因此我们需要做一下判断,需要在header中添加自己的cookie。
整体逻辑:
查询评论列表数据,如果条数小于等于size,如果评论数据中,没有自己的id,则返回false,如果有自己的id则更新数据库,返回true。
如果条数大于size,如果评论数据中,没有自己的id,则进行递归,如果依然没有,返回false,如果有自己的id则更新数据库,返回true。
七、评论
OK,已经做完了装备,然后我们来评论。获取到评论的接口。
这里需要添加自己的cookie。逻辑:调用评论的接口,如果返回成功,则更新数据库状态,如果返回400,找不到文章则更新并跳过。
八、组合评论
我们已经搞定了单个的评论,然后我们组合各个函数,查询数据库,然后进行评论。
逻辑:查询数据库未评论数据,如果返回了数据,则进入循环,如果是黑名单用户文章,则不评论,直接更新,如果不是则查询是否评论,如果没有评论就进行评论。
九、设置定时任务
已经生产了各个函数,但是只能一次一次执行,或者就是写一个循环,那不如写一个定时任务吧。然后我们来进行定时任务的组合。需要用到schedule模块。
十、完整代码