为你的好朋友添点评论
为你的好朋友来点评论
注意:此篇文章所述内容仅仅对valine
评论系统有效,其他评论系统不可用!
想要为朋友来点评论需要具备的能力如下
懂得右键查看源代码
能够安装python3
能够安装一个python的模块
能够运行一个python代码
能够简单修改一些参数
关于python相关如果不清楚或不了解请自行百度。
获取基础配置
想要为朋友来点评论就需要知道他的博客域名、appId、appKey和他所使用的机器是哪个地区的。
接下来一一介绍上述四种元素如何获取。
博客域名
这是你朋友的博客域名,你可以咨询他。例如我的博客域名https://www.antmoe.com
注意需要带上请求头,就像我上边那样。
appId、appKey
这个虽然看似隐私,但其实是暴露的。找一个可以评论的页面即可,以乐特大佬的博客为例,右键查看源代码,然后ctrl+F
搜索Valine
,如下就是我们需要的appId与appKey
所使用的机器
所使用的机器指的是指他的Leancloud所使用的地区。同样的找一个有可以评论的页面,F12打开控制台,选择网络(Network
),选择XHR
。刷新页面。
其中这就是我们需要的地址https://avoscloud.com/1.1/classes/Comment
使用脚本为其来点评论
import threading
import time
import hashlib
import requests
import json
import time
import random
class Gogogo(threading.Thread):
def __init__(self, appId, appKey, whiteUrl, leancloudUrl, urls):
threading.Thread.__init__(self)
self.appId = appId
self.appKey = appKey
self.whiteUrl = whiteUrl # 网站白名单
self.leancloudUrl = leancloudUrl # leancloud的地址
self.curlUrls = urls # 评论地址列表
self.commentText = ''
self.commentForm = ''
self.nowTime = str(int(time.time() * 1000))
self.headers = {
"accept": "*/*",
"content-type": "application/json",
"charset": "UTF-8",
"origin": self.whiteUrl,
"referer": self.whiteUrl,
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site",
"user-agent": "Mozilla/5.0 (Windows NT 10.0 Win64 x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.64",
"x-lc-id": self.appKey,
"x-lc-sign": "%s,%s" % (self.my_md5(self.nowTime+self.appId), self.nowTime),
"x-lc-ua": "LeanCloud-JS-SDK/3.15.0 (Browser)",
}
self.data = {
"ACL": {"*": {"read": True}},
"QQAvatar": "https://q2.qlogo.cn/headimg_dl?dst_uin=%s&spec=100" % (random.randint(1000000, 9999999999)),
"comment": "<p>"+"%s" % (self.commentText)+"</p>",
"insertedAt": {"__type": "Date", "iso": "%s%s%s%s-0%s-22T02:25:02.979Z" % (random.randint(0, 9), random.randint(0, 9), random.randint(0, 9), random.randint(0, 9), random.randint(0, 9))},
"ip": "%s.%s.%s.%s" % (random.randint(0, 1000), random.randint(0, 1000), random.randint(0, 1000), random.randint(0, 1000)),
"link": self.whiteUrl,
"mail": "%s@qq.com" % (random.randint(1000000, 9999999999)),
"nick": self.commentForm,
"ua": "Mozilla/5.0 (Windows NT %s.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.4103.61 Safari/537.36 Edg/%s.0.478.37" % (random.randint(0, 1000), random.randint(0, 1000), random.randint(0, 1000)),
"url": '/'
}
# MD5加密
def my_md5(self, s):
m = hashlib.md5(s.encode())
return m.hexdigest() # 获取加密后的字符串
# 得到评论的地址
def getCurl(self):
num = random.randint(0, len(self.curlUrls) - 1)
print(self.curlUrls[num])
return self.curlUrls[num]
# 设置评论的内容与评论地址
def getCommentText(self):
try:
obj = json.loads(requests.get(
'https://international.v1.hitokoto.cn/').text)
except:
obj = False
if (obj):
self.data['comment'] = "<p>" + obj['hitokoto']+"</p>"
self.data['nick'] = obj['from']
self.data['url'] = self.getCurl()
return "%s-------%s" % (self.data['comment'], self.data['nick'])
else:
self.data['comment'] = "大佬太强了!!!"
self.data['nick'] = '一个菜鸟!!!'
self.data['url'] = self.getCurl()
return "%s-------%s" % ("大佬太强了!!!", "一个菜鸟!!!")
def run(self):
while True:
self.getCommentText()
r = requests.post(self.leancloudUrl,
headers=self.headers, data=json.dumps(self.data))
print(r.text)
# return r
# 评论页面的列表 支持多个
urls = ['/message/', 'test1', 'test2']
# range参数为线程参数
for i in range(100):
# 第一个参数表示appKey,第二个参数表示appId,第三个参数表示允许评论的白名单(通常为博客域名),第四个参数表示leancloud的地址,第五个参数表示需要刷取的页面列表
leteNB = Gogogo('appKey','appId','博客域名','leancloud的地址',urls)
leteNB.start()
例子:假如我想为https://www.antmoe.com/posts/a811d614/index.html
、https://www.antmoe.com/posts/fa6c3bf8/index.html
这两个页面刷点评论,那么需要修改的配置为:
# 评论页面的列表 支持多个
urls = ['/posts/a811d614/index.html', '/posts/fa6c3bf8/index.html']
# range参数为线程参数
for i in range(100):
# 第一个参数表示appKey,第二个参数表示appId,第三个参数表示允许评论的白名单(通常为博客域名),第四个参数表示leancloud的地址,第五个参数表示需要刷取的页面列表
leteNB = Gogogo('f3qDOJkhXasd1gIg6SG3sJJm1v','MBfS2fVeebK3aL9bwrdxyIJ8-MdYXbMMI','https://www.antmoe.com/','https://us.avoscloud.com/1.1/classes/Comment',urls)
leteNB.start()
那么接下来启动脚本就好了。
线程指的是同时几个程序帮他刷,如果100相当于100个人一起帮他评论,而1则表示一个人一个人的帮他评论。线程数越大刷的越多(电脑带的动)。
其他
如果你想一直为你的好朋友添加评论,那么可以将这个脚本扔到GitHub并利用actions来帮他刷哦!
这里暂时就不介绍了,各位好心的博主如果遇到好朋友需要评论可以为他来一点哦!
另外为了不被刷取评论,本站关闭了valine评论。
最后希望各位小伙伴以及小伙伴的朋友会喜欢呢!
- Future Pattern
- Linux账号管理
- Linux系统服务——Daemon
- ES6 主要的新特性
- thinkphp生成的验证码不显示问题解决
- 深入剖析Spring(二)——IoC容器的实现
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- 深入剖析Spring(一)——IoC的基本概念(从面向对象角度介绍)
- Restful安全认证及权限的解决方案
- Java并发容器大合集
- Java并发编程的艺术(九)——批量获取多条线程的执行结果
- web.xml中load-on-startup的作用
- Java并发编程的艺术(七)——Executors
- Java并发编程的艺术(八)——闭锁、同步屏障、信号量详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python如何快速生成时间戳
- 从python读取sql的实例方法
- PHP+iframe模拟Ajax上传文件功能示例
- Centos7 Yum安装PHP7.2流程教程详解
- PHP session垃圾回收机制实例分析
- thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
- Python常用库Numpy进行矩阵运算详解
- PHP设计模式之建造者模式(Builder)原理与用法案例详解
- PHP大文件切割上传并带进度条功能示例
- PHP设计模式之观察者模式入门与应用案例详解
- Python文件夹批处理操作代码实例
- ThinkPHP框架结合Ajax实现用户名校验功能示例
- Laravel框架Eloquent ORM新增数据、自定义时间戳及批量赋值用法详解
- PHP使用HTML5 FileApi实现Ajax上传文件功能示例
- python3.7调试的实例方法