热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用Python制作简易的点赞器【python基础】

在今天,任何一个社区类平台,都具备点赞功能,应运而生的就是自动点赞器,俗称刷分机刷赞器。本文将用Python编写一个点赞机器人

在今天,任何一个社区类平台,都具备点赞功能,应运而生的就是自动点赞器,俗称刷分机/刷赞器。

本文将为你介绍一款点赞机器人,最简单易理解的核心逻辑。

全文涉及的伪代码,使用 Python 编写,由于是伪代码的原因,不懂 Python,你也能看懂。

本篇博客试用场景

本次点赞机器人,主要面向电脑上的 Web 站点,不涉及 APP 端。

点赞机器人核心逻辑

模拟点击操作,触发点赞,喜欢等操作。

实现点赞操作前,还有一步重要的代码实现,模拟登录。

因此,点赞机器人的基本需求如下:

  • 模拟登录;
  • 进行点赞;

对该需求进行扩展后,存在两个常见的业务场景。

  • 通过模拟登录大量账号,实现针对 “一人/一物/一文/一视频” 的大量点赞,即刷别人的分;
  • 通过登录一账号,实现针对“多人”的批量点赞,即刷自己的分。

代码层级的实现

基本逻辑梳理清楚之后,就可以进入实际的编码环节。

模拟登录

在登录实现上,存在两种思路:

  • 大量注册(也可购买)账号,通过 Python 程序切换账号,每次登录点赞之后,切换下一账号;
  • 提前通过技术或人工手段,模拟登录,记录账号登录后产生的 COOKIE,后续维护 COOKIE 池实现操作逻辑。

思路二存在的问题为 COOKIE 有效期问题,如网站无此限制,建议采用该方式,效率更高。

伪代码实现

# 思路一
with open("users.txt","r") as f:
 user_pass = f.readline()
 # 模拟登录
 login(user_pass)
 # 完成登录后操作
 do_someting()

# 思路二
with open("COOKIEs.txt","r") as f:
 one_COOKIE = f.readline()
 # 通过携带 COOKIE 参数访问接口
 get_detail(one_COOKIE)

with open("users.txt","r") as f:
 user_pass = f.readline()
 # 模拟登录
 login(user_pass)
 # 完成登录后操作
 do_someting()

# 思路二
with open("COOKIEs.txt","r") as f:
 one_COOKIE = f.readline()
 # 通过携带 COOKIE 参数访问接口
 get_detail(one_COOKIE)


with open("users.txt","r") as f:
 user_pass = f.readline()
 # 模拟登录
 login(user_pass)
 # 完成登录后操作
 do_someting()

# 思路二
with open("COOKIEs.txt","r") as f:
 one_COOKIE = f.readline()
 # 通过携带 COOKIE 参数访问接口
 get_detail(one_COOKIE)
# 思路一
with open("users.txt","r") as f:
 user_pass = f.readline()
 # 模拟登录
 login(user_pass)
 # 完成登录后操作
 do_someting()

# 思路二
with open("COOKIEs.txt","r") as f:
 one_COOKIE = f.readline()
 # 通过携带 COOKIE 参数访问接口
 get_detail(one_COOKIE)

其中思路二的 COOKIE 池,可以人工或者使用程序创建。

在模拟登录部分,你将碰到两个学习难点

1.验证码识别问题;

2.IP 反爬限制。

难点一最易上手的解决方案,对接打码平台。

难点二解决方案,购买 IP 代理池,也可自建代理池,重点看项目成本与对稳定性的要求。

点赞器

在很多项目中,当你完成了模拟登录操作,已经表示该网站对你 完全开放了。

接下来你要做的就是寻找点赞接口,例如下面的案例(只做参考使用):

CSDN 点赞接口如下:

# POST 传递用户标识与文章 ID
Request URL: https://blog.csdn.net//phoenix/web/v1/article/like
Request Method: POST
# POST 参数如下
articleId=118558076

知乎点赞接口如下:

# 直接 POST 传递,用户标识在 COOKIE 中
Request URL: https://www.zhihu.com/api/v4/zvideos/1391420717800554497/likers
Request Method: POST

bilibili 点赞接口如下:

# 传递用户标识的同时,传递相应的参数
Request URL: https://api.bilibili.com/x/web-interface/archive/like
Request Method: POST
# POST 参数如下
aid: 631588341
like: 1
csrf: b39b26b6b8071e2f908de715c266cb59

通过上述几个案例,你会发现,点赞操作接口格式基本类似,都是通过 POST 传递 COOKIE 与特定参数到服务器中。

其中 B 站的特殊一些,携带了一个 csrf 参数,该参数可以从 COOKIE 中直接提取。

伪代码实现

import requests

def like(params):
 # 请求头中获取 COOKIE 由模拟登录获取
 COOKIE = get_COOKIE()
 # COOKIE = login()
 headers = {
  "其它属性":"属性值",
  "COOKIE":COOKIE # 重点包含用户标识 COOKIE
 }
 res = requests.post("地址","参数","请求头")

在调用点赞接口部分,你将碰到一个学习难点

接口中包含位置参数,例如上述的 B 站点赞链接中的 csrf,碰到未知参数的解决思路参考下述描述。

继续拿 B 站举例,打开浏览器开发者工具,切换到 network 选项卡,当点击点赞的时候,会出现点赞的数据请求,如下图所示。

该请求同时出现了 POST 的相关参数,接下来,你只需要按下键盘的 Ctrl+F,打开搜索窗口(就是在当前开发者工具的 network 选项卡中打开),在搜索框中,输入要检索的值,即可找到该值所出现的所有请求位置,然后再进行后续分析即可。重点要找到该参数值产生的位置与原理。

总结

自动点赞机器人存在多样的应用场景,准确的说,该操作会造成某些平台的失衡,也会影响平台数据的公平性,但正是因为有需求,所以市场上现在存在大量的点赞器,刷分器,评论器,甚至存在大量的公司去经营此类业务。

我们不支持该类业务,但可以学习它的实现原理。毕竟使用 Python 实现一款自动化工具,了解原理之后,将变得非常简单。

以上就是利用Python制作简易的点赞器的详细内容,更多关于Python点赞器的资料请关注编程笔记其它相关文章!


推荐阅读
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」
    Python15行代码实现免费发 ... [详细]
  • 【Python 爬虫】破解按照顺序点击验证码(非自动化浏览器)
    #请求到验证码base64编码json_img_datajson_raw.get(Vimage)#获取到验证码编码 #保存验证码图片到本地defbase64_to_img(bstr ... [详细]
  • 第一种<script>$(".eq").on(&qu ... [详细]
  • 目前正在做毕业设计,一个关于校园服务的app,我会抽取已完成的相关代码写到文章里。一是为了造福这个曾经帮助过我的社区,二是写文章的同时更能巩固相关知识的记忆。一、前言在爬取教务系统 ... [详细]
  • 跨站的艺术XSS Fuzzing 的技巧
    作者|张祖优(Fooying)腾讯云云鼎实验室对于XSS的漏洞挖掘过程,其实就是一个使用Payload不断测试和调整再测试的过程,这个过程我们把它叫做F ... [详细]
  • SLAM优秀开源工程最全汇总
    https:zhuanlan.zhihu.comp145750808 1、CartographerCartographer是一个系统,可跨多个平台和传感器配置以2D和3D形式提供实 ... [详细]
author-avatar
婆孙天地敞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有