别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

最近有次在钉钉看直播,发现这个直播非常之精彩,于是情不自禁地想要为主播大佬连刷一波赞:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

但我发现,手动连击点赞速度十分不可观。气人的是,钉钉直播不能长按刷赞!这让我很恼怒。心中满怀的激动和兴奋以及对大佬的崇高的敬意无法尽情表达,于是我一拍桌子,好,写个脚本来 刷赞 表示敬意!古有 怀怒未发,休祲降于天,今有 难以点赞,拍桌写代码

(我这一言难尽的文学素养……)

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

话不多说,马上开始!

钉钉点赞程序

这个简单的程序只需要用到一个库: pyautogui

进入 cmd 命令行,安装库:

pip install pyautogui

然后在代码里导入库:

import pyautogui as pg

接下来做一个设置, 设置操作间隔时间

pg.PAUSE = 0.01 # 设置操作间隔时间

这样,程序每点击一次点赞按钮,都会有 0.01 秒的间隔时间,防止因点击过快造成卡顿等问题。

点赞器 1.0版

首先我们要获取点赞按钮的坐标,我们可以通过 position 方法获取,我获取到的坐标是 (1568, 771):

print(pg.position()) # 打印鼠标当前坐标,返回一个 Point 对象:Point(1568, 771)

小 tip: 这个要怎么搞呢?很多编辑器都有 编译代码 快捷键(比如 IDLE 默认为 F5,Sublime Text 里默认为 Ctrl+ B),那么我们可以将光标移到目标位置,按下 F5,即可以运行这句代码,它会输出光标此时的坐标。或者我们也可以进入 IDLE 里的交互模式,输入这句代码后,将鼠标移到目标,然后按下回车即可运行。

接下来要控制光标点击按钮。pyautogui 库实现点击操作的方法是 click:

pg.click(x, y)

  • 传入两个参数:点击位置的横坐标和纵坐标。横坐标、纵坐标我们已经知道了(这里是 1568, 771)。

接下来放上程序代码:

import pyautogui as pg

pg.PAUSE = 0.01 # 每个操作之间间隔0.01秒

#print(pg.position())

for i in range(500): # 循环点赞500次
    pg.click(1568, 771) # 点击
    print(i) # 打印循环次数

看看 1.0 版点赞器的效果:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

(由于点赞很快,大拇指有时候会蹦不出来了,不过我们可以看到点赞量还是在蹭蹭上涨的)

点赞器 2.0版

愉快地疯狂点赞后,很快我就发现一个严重的问题:点赞 难以暂停!就像下面这样:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

当我想要停止刷赞,去做做别的事情的时候,我发现鼠标根本挪不开!一移开又被强制移回来,这样体验很不好。

特别是当我尝试刷上万个赞的时候,我等得花都谢了,人都要疯掉了但是它还没点完!这让我意识到:我必须提供一个方法让用户中断点赞!

于是我对代码进行了改进,增加了一个判断:如果鼠标坐标不等于按钮坐标的话,就判定为鼠标移开,自动跳出 for 循环,停止点赞。当然,在第一次循环,也就是第一次点击前,鼠标还没移过去呢,因此我们还得排除掉这种情况。看看最新代码:

import pyautogui as pg

#print(pg.position())

pg.PAUSE = 0.01 # 每个操作之间间隔0.01秒

for i in range(500):
    if i and pg.position() != (1568, 771): # 判断鼠标是否离开
        print('break')
        break # 跳出循环,停止点赞
    pg.click(1568, 771) # 点击
    print(i) # 打印循环次数

然后这是最新效果:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

可以看到,在鼠标挪开之后,点赞就立刻停止了。不戳不戳。

点赞器 3.0版 ——大幅增速

我写这玩意的初衷是:方便地给大佬点赞 和 提高点赞速度。既然现在点赞很方便了,那么我就琢磨着把速度再提升一下。我将间隔时间 PAUSE 改为了 0.001,看看效果怎么样:

pg.PAUSE = 0.001 # 设置操作间隔时间

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

不错,不错,很快(快到已经卡住了),看看所用时间:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

500个赞用了13秒。

我再试试多线程?

下面这个代码我导入了 threading库,开了两个线程,试试效果怎样:

import pyautogui as pg
from threading import Thread # 多线程库

#print(pg.position())

pg.PAUSE = 0.01 # 每个操作之间间隔0.01秒

点赞函数
def run(n):
    for i in range(250): # 由于两个线程,因此把每个线程点赞数减一半
        if i > 1 and pg.position() != (1568, 771):
            print('break')
            break
        pg.click(1568, 771)
        print(i)

两个线程
t1 = Thread(target=run, args=('t1',))
t2 = Thread(target=run, args=('t2',))
线程开始
t1.start()
t2.start()

看一看开两个线程的效果:

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

我们可以看到这已经非常快(卡到不行)了,用了多少时间?

别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

好家伙只需要 6 秒,时间直接减半!很棒很棒针不戳!

不过我觉得我还是更愿意用回 2.0 版,因为更顺畅一些,否则,连直播界面都是卡顿的 [流泪][流泪] 没办法,电脑配置太低 。

所以我建议大家,尽量别开多线程来点赞。尤其不要尝试开 10000 个线程点 10000 个赞!那时候不知道你电脑还在不在……

——the End——

谢谢你的阅读!关注作者,跟作者一起学Python!

2022/2/7

Original: https://www.cnblogs.com/hi-zzh/p/15867607.html
Author: 你豪哥哥
Title: 别人都在认真听课,我埋头写Python为主播疯狂点点点点点赞!

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/616658/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 年近三十,真的卷不动了

    年近三十,真的卷不动了,新技术层出不穷,这个还没摸清门道,那个就已经开始流行使用了。跟其他行业的朋友吐槽, 他说你学呀,你们这行不就是终身学习的嘛。 我苦笑, 平时早上七八点出门工…

    Python 2023年10月17日
    031
  • 数学建模国赛2022C解题分享

    GitHub – KZF-kzf/MathModeling2022C: 数模国赛的所有代码和数据数模国赛的所有代码和数据. Contribute to KZF-kzf/…

    Python 2023年9月28日
    068
  • Anaconda介绍及安装

    主要内容 Anaconda简单介绍 Anaconda安装 新建Pytorch环境 什么是Anaconda?为什么要用Anaconda Python是一种面向对象的解释型计算机程序设…

    Python 2023年5月24日
    086
  • 【python做接口测试的学习记录day5——pytest+yaml数据驱动+allure报告的一个包含token关联的自动化测试框架】

    之前的学习中,我们已经将需要的插件都安装好了,现在我们开始记录一下一个包含token关联的接口自动化框架的搭建全过程 我们的总体结构如下: common:用来存放公共类 repor…

    Python 2023年9月11日
    075
  • 决策树练习

    数据预处理分析,最后面附有决策树算法的实现原始数据:原数据地址计算第一次决策如果分别对在14天各个属性下是否进行施肥的统计情况且计算该属性的基尼指数,同一种属性不同表现的基尼指数表…

    Python 2023年8月7日
    069
  • python-django自定义分页

    1、数据库测试表 +—–+———+—–+| uid | name | age |+—…

    Python 2023年8月6日
    037
  • 自动化平台测试开发方案(详解自动化平台开发)

    目录:导读 前言 自动化平台开发方案自动化平台开发 功能需求 技术知识点 技术知识点如表所示 自动化平台开发技术栈如图所示。 开发时间计划 投资回报率可视化 后期优化计划 登录功能…

    Python 2023年8月5日
    068
  • python影评_用Python分析18万条《八佰》影评,看看观众怎么说?

    大家好,我是J哥。 最近《八佰》这部电影比较火,上映仅15天就已斩获22亿票房。对于沉寂了半年、影院上座率仍限定在50%的电影市场而言,这样的成绩出人意料。 从猫眼电影官网可以看到…

    Python 2023年8月19日
    071
  • Jenkins自由风格软件项目构建—-Jenkins+Pytest+Allure搭建自动化测试任务

    一、jenkins 安装allure 插件 (1)登录jenkins后,点击【系统管理】-【插件管理】 (2)切换到【可选插件】,搜索Allure,然后勾选Allure插件,点击【…

    Python 2023年9月10日
    055
  • 利用Python进行数据分析的学习笔记——chap7

    数据规整化:清理、转换、合并、重塑 合并数据集 pandas.merge可根据一个或多个键将不同DataFrame中的行连接起来。pandas.concat可以沿着一条轴将多个对象…

    Python 2023年8月7日
    087
  • Linux系统中GCC编译环境的安装

    Linux操作系统是免费开源的系统软件,允许用户编译安装自己编写的系统软件和应用软件,但是在安装Linux操作系统的时候一般默认是不安装编译环境的,所以当用户需要编译安装软件时,必…

    Python 2023年6月6日
    088
  • 电子产品销售分析练习项目

    读取数据 导入所需科学计算库 import numpy as np import pandas as pd import matplotlib.pyplot as plt 忽略小警…

    Python 2023年8月8日
    043
  • opencv飞机大战年度巨制

    参考连接 我写在最前面了希望各路神仙给我点c币吧参考资源 一、项目背景(1) 项目简介:利用基于OpenCv-python 的现有姿态识别模块实现对手部姿势的识别,来控制基于pyg…

    Python 2023年9月18日
    058
  • Python基于PC版微信实现机器人

    在 github中有基于 web版的微信实现的实时收发消息 api, python调用起来非常简单。但是目前来说,大部分的用户没法登录 web版的微信,因此也就没法使用。 今天我们…

    Python 2023年8月9日
    052
  • 强化学习-学习笔记14 | 策略梯度中的 Baseline

    本篇笔记记录学习在 策略学习 中使用 Baseline,这样可以降低方差,让收敛更快。 14. 策略学习中的 Baseline 14.1 Baseline 推导 在策略学习中,我们…

    Python 2023年10月25日
    047
  • C语言基础–数组

    数组 概念:在内存中连续存储的具有相同数据类型的一组数据的集合。 注意: 数组中的数据类型必须都是一致的 数组在内存中必须是连续的存储空间 定义数组时候的注意事项: 定义数组的时候…

    Python 2023年10月18日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球