前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >技巧与工具04-python控制鼠标自动化点击脚本

技巧与工具04-python控制鼠标自动化点击脚本

作者头像
零式的天空
发布于 2022-03-02 09:26:26
发布于 2022-03-02 09:26:26
4.3K00
代码可运行
举报
文章被收录于专栏:零域Blog零域Blog
运行总次数:0
代码可运行

python控制鼠标自动化点击脚本

事情起因

今天是DNF九周年活动,出了新职业圣职者,为了快速升级需要获取疲劳药,可以用活动送的 黑钻来抽奖,每抽一次需要分别点击三次,而我能抽奖500多次,所以不想手动来点击,刚好 前几天在微信公众号看了一个简短的文章,是关于python的pyautogui库可以自动化键盘和鼠标 的操作,因此就开始动手做;台式机以前新装的系统,因此需要下载python。

环境搭建

  • 下载 python2.7 并安装
  • 配置python环境变量,包括python目录和scripts目录(为了pip)
  • pip install pyautogui 安装这个控制鼠标和键盘的库

熟悉pyautogui库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pyautogui as pg #导入库 
pg.size() #返回窗口大小,比如(1920,1080)
pg.position() #返回鼠标当前位置
pg.moveTo(100, 100) #移动鼠标
pg.click(100, 100) #移动鼠标并单击
pg.press('enter') #按下回车键
pg.keyDown('esc') #按下退出键
pg.keyUp('esc') #松开退出键
pg.typewrite('hello') #文本输入
pg.dragTo(100, 100) #鼠标拖拽

脚本编写

脚本的逻辑很简单,首先10秒的时间用来让我放置鼠标到起始的位置,也就是黑钻售货机, 进行第一次点击;之后会进入循环,即每次点击三次,分别是按钮“启动”,“停止”,“确定”, 其中三次的位置均不同,但是dnf会自动将鼠标移动到下一个需要点击的位置,为了给dnf 这个移动的时间,中间有sleep操作。

最终抽奖完成,但是程序会一直运行下去,这时需要将鼠标移动到左上角,这样程序会抛出 异常,从而捕获异常,终止程序;至于为什么不用click()函数,而是用dragTo()这个鼠标 拖拽函数,下面会提到。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#/usr/bin/env python
# coding: utf-8
import sys
from time import sleep

import pyautogui as pg
import pytweening

def my_click():
    l_pos, r_pos =  pg.position()
    pg.dragTo(l_pos+1, r_pos+1, duration = 0.5, button='left')
    sleep(0.1)
            
def main():
    # get current position
    print "Place your mouse in the starting position within then seconds."
    sleep(10)

    try:
        my_click()
        times = 1
        while 1:
            my_click()
            my_click()
            sleep(0.5)
            my_click()
            print "click %03d" % times
            times += 1
    except pg.FailSafeException as e:
        print "Error: %s" % e
        print "Over"
    except Exception as e:
        print "Error: %s" % e
        print "Over"
                
if __name__ == "__main__":
    main()

问题总结

  • 经过测试,使用pyautogui可进行按键和文本输入,但是无法进行鼠标的单击,即click()在dnf的窗口无效
  • 怀疑是游戏方有监控鼠标的滑行轨迹,如果是直线的就进行过滤,这应该算是防止作弊的一种手段
  • 还好试了dragTo(),先按下鼠标再松开是可以,否则要考虑使用非直线来进行鼠标的移动,这可能要用到 其他的库,pyautogui中没有找到对应的方法

参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Scrapy持久化存储
  保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作;
py3study
2020/01/21
7640
爬虫框架Scrapy(一)
Absorb what is useful. Discard what is not. Add what is uniquely your own.
小闫同学啊
2019/07/18
1.3K0
爬虫框架Scrapy(一)
scrapy框架的介绍
Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
用户2337871
2019/07/19
6380
scrapy框架的介绍
scrapy框架
scrapy genspider 应用名称 爬取网页的起始url (例如:scrapy genspider qiubai www.qiushibaike.com)
全栈程序员站长
2022/09/07
1.7K0
scrapy框架
python爬虫–scrapy(再探)
— 图片:xpath解析出图片src的属性值。单独的对图片地址发起请求获取图片二进制类型的数据。
全栈程序员站长
2021/04/21
6620
python爬虫–scrapy(再探)
011:运用Scrapy爬取腾讯招聘信息
在tecent_recruit文件夹下找到spiders文件夹, 在此处打开cmd窗口输入命令:scrapy genspider catch_positon tencent.com 创建名为“catch_positon"的爬虫文件
李玺
2021/11/22
6880
011:运用Scrapy爬取腾讯招聘信息
Python爬虫之scrapy框架学习
scrapy安装步骤 pip install wheel 下载twisted : 地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted (选择对应的版本) 安装twisted : pip install aiohttp-3.8.1-cp38-cp38-win_amd64.whl pip install pywin32 pip install scrapy 测试终端输入: scrapy 创建工程 终端输入: scrapy startproject fi
shaoshaossm
2022/12/26
7160
Python爬虫之scrapy构造并发送请求
在爬虫文件的parse方法中,提取详情页增加之前callback指定的parse_detail函数:
海仔
2020/09/28
1.5K0
Python爬虫之scrapy构造并发送请求
scrapy数据建模与请求
请注意,本文编写于 1724 天前,最后修改于 993 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
4160
python scrapy爬虫练习(1) 爬取豆瓣电影top250信息
文章目录 一、分析网页 目标URL:https://movie.douban.com/top250?start=0&filter= 每一页有25条电影信息,总共10页。检查网页可以发现,每条电影的详细
叶庭云
2020/09/17
5.1K0
python  scrapy爬虫练习(1)   爬取豆瓣电影top250信息
爬虫之scrapy框架(一)
Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
GH
2020/03/19
8530
Python之scrapy框架
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
鱼找水需要时间
2023/02/16
5190
Python之scrapy框架
python爬虫 scrapy爬虫框架的基本使用
在编写爬虫的时候,如果我们使用 requests、aiohttp 等库,需要从头至尾把爬虫完整地实现一遍,比如说异常处理、爬取调度等,如果写的多了,的确会比较麻烦。利用现有的爬虫框架,可以提高编写爬虫的效率,而说到 Python 的爬虫框架,Scrapy 当之无愧是最流行最强大的爬虫框架了。
叶庭云
2020/09/17
1.6K0
Scrapy爬取数据初识
Scrapy爬取数据初识 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。 基本步骤 选择一个网站 定义您想抓取的数据 编写提取数据的Spider 执行spider,获取数据 查看提取到的数据 安装 控制台执行命令p
听城
2018/04/27
1.7K0
Scrapy爬取数据初识
Python:Scrapy框架的安装和基本使用
本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。
一墨编程学习
2018/11/26
1.3K0
scrapy 框架入门
官网:https://docs.scrapy.org/en/latest/intro/overview.html
程序员同行者
2018/12/12
6780
scrapy 框架入门
精通Python爬虫框架Scrapy_php爬虫框架哪个好用
讲解Scrapy框架之前,为了让读者更明白Scrapy,我会贴一些网站的图片和代码。 但是,【注意!!!】 【以下网站图片和代码仅供展示!!如果大家需要练习,请自己再找别的网站练习。】 【尤其是政府网站,千万不能碰哦!】
全栈程序员站长
2022/11/01
1.3K0
实战 | 如何利用 Scrapy 编写一个完整的爬虫!
提到爬虫框架,这里不得不提 Scrapy,它是一款非常强大的分布式异步爬虫框架,更加适用于企业级的爬虫!
AirPython
2022/12/29
7000
实战 | 如何利用 Scrapy 编写一个完整的爬虫!
【0基础学爬虫】爬虫基础之scrapy的使用
大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为自动化工具 Selenium 的使用。
K哥爬虫
2024/07/01
1830
【0基础学爬虫】爬虫基础之scrapy的使用
爬虫之scrapy框架
  何为框架,就相当于一个封装了很多功能的结构体,它帮我们把主要的结构给搭建好了,我们只需往骨架里添加内容就行。scrapy框架是一个为了爬取网站数据,提取数据的框架,我们熟知爬虫总共有四大部分,请求、响应、解析、存储,scrapy框架都已经搭建好了。scrapy是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架,scrapy使用了一种非阻塞的代码实现并发的,结构如下:
py3study
2020/01/17
1.3K0
相关推荐
Scrapy持久化存储
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验