用Python脚本做一些网页游戏中力所能及的自动化任务
下面是一段自动登录360传奇霸业游戏的脚本:
from pymouse import PyMouse
import time
import webbrowser
from pykeyboard import PyKeyboard url = "http://cqby.wan.360.cn/game_login.php?server_id=S577&&src=loginhistory"
webbrowser.open_new_tab(url)
m = PyMouse()
k = PyKeyboard()
m.move(638, 620)
time.sleep(10)
m.click(638, 620)
time.sleep(2)
k.type_string("pwd")
time.sleep(1)
m.move(591, 480)
m.click(591, 480)
这里用到了鼠标点击和键盘输入,需要分别安装PyMouse和PyUserInput,安装好之后,就可以实现鼠标的点击和键盘的输入操作了。关于PyUserInput的官方文档点这里观看。
鼠标的点击是依靠坐标来定位的,所以我们还需要一个脚本用来获取屏幕上的位置信息。通过在网上搜索,找到了如下脚本(这里我把相应的参数修改了一下,以适应本机的屏幕大小):
import Tkinter class Tkwin:
def __init__(self, root):
self.root = root
self.frame = Tkinter.Frame(root, bd=2)
self.edit = Tkinter.Text(self.frame, width=1280, height=1300)
self.edit.pack(side=Tkinter.LEFT)
self.frame.place(y=0)
self.edit.bind('<Button-1>', self.action) def action(self, event):
self.edit.insert(Tkinter.END, "Window_location x:%d y:%d\n" % (event.x, event.y))
self.edit.insert(Tkinter.END, "Screen_location x:%d y:%d\n" % (event.x_root, event.y_root)) root = Tkinter.Tk();
window = Tkwin(root)
root.minsize(1280, 800)
root.maxsize(1280, 800)
root.mainloop()
运行这个脚本就可以通过点击鼠标的方式来获取屏幕上相应的位置信息了(在终端里找到脚本并运行):

OK,这样就可以确定传奇霸业页游上按钮的位置并输入我们想输入的信息了。在终端运行我们写好的自动登陆脚本,就实现了传奇霸业的自动登录:

关于上面这个东西是怎么录制的,百度搜索LICEcap,下载安装后打开就可以开始录制屏幕上进行的操作了。
最后即兴赋词一首《林子聪·再见》:
一入传坑深似海,不知怎进此中来。若能回到半年前,网页弹窗、游戏广告,一律不点开。要怪都怪林子聪,一直游戏到现在。
已经快有小一年,充值接近五千块。然并卵,上不能抢boss,下不能虐菜。真是不想再玩下去,投了太多又不舍离开。唉,无奈。
用Python脚本做一些网页游戏中力所能及的自动化任务的更多相关文章
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- Windows 下针对python脚本做一个简单的进程保护
前提: 大家运行的脚本程序经常会碰到系统异常关闭.或被其他用户错杀的情况.这样就需要一个进程保护的工具. 本文结合windows 的计划任务,实现一个简单的进程保护的功能. 利用py2exe生产 ex ...
- Python脚本模拟登录网页之CSDN篇
1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现lt和execution这两个字段每次登录时都不一样. POSTDATA=username=you ...
- 网页游戏中PK系统的实现
在游戏开发过程中,写过一个简单的PK系统面板,涉及到前端和后端的交互,我将自己制作的流程分享给大家,大概流程是这样:前端发送PK邀请给后端,后端受到请求后将信息返回给前端处理,先来看下整个流程图及思路 ...
- Python脚本模拟登录网页之ZiMuZu篇
ZiMuZu.tv这个网站喜欢看电影看美剧的人一定都熟悉. 这个网站原先的升级策略是每天登陆网站, 然后去一个"每日签到"的页面点击一个签到按钮, 以实现帐号等级的升级. 之前网上 ...
- Python脚本模拟登录网页之GitHub篇
1. 通过Firefox配合插件Tamper Date获取登录时客户端向服务器端提交的数据, 并且发现authenticity_token这个字段每次登录时都不一样. POSTDATA=commit= ...
- Python脚本自动提取和替换代码中的中文
# -*- coding: utf-8 -*- import os import os.path import re import sys reload(sys) sys.setdefaultenco ...
- 设置eclipse中python脚本的编码格式
今天在运行python脚本时报如下错误: SyntaxError: Non-ASCII character '\xe5' in file D:\pythonlearn1\src\day01\direc ...
- Python能做什么
There should be one--and preferably only one --obvious way to do it. 首先,对于小白来说,Python比较容易上手.额就是个活 ...
随机推荐
- Leetcode: Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- Python学习总结6:字符串格式化操作及方法总结
1. 格式化操作(%) Python中内置有对字符串进行格式化的操作. 模板 格式化字符串时,Python使用一个字符串作为模板.模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格 ...
- SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
以前SQL Server 2008 不能登陆的时候,总是通过“计算机管理”→“SQL Server服务”更改一下,"SQL Server(MSSQLSERVER)".可是现在出现的 ...
- 真实的C++单例模式举例
把构造函数声明为protected的理由很简单,但把构造函数声明为private的原因却很少知道. 从语法上讲,任何函数如果被声明为private,这个函数就不能从外部调用,构造函数也是函数,相反 ...
- 新发现了一个编辑器HBuilder,感觉蛮好的,关键是国产软件。
http://www.dcloud.io/
- SVN使用(一)
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
- setInterval 实时驱动界面改变
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- android 学习随笔五(界面)
把数据库内容显示到界面 清单文件设置为线性布局(5大布局属于ViewGroup) 在清单文件中可以增加View显示 LinearLayout ll = (LinearLayout) findViewB ...
- django migrate10060 Duplicate column name错误
这个错误意思是有重复的列名,其实大部分原因是因为某些列被执行了多次,可以打开migration里面的django生成的文件去排查错误,然后自己手动修改数据库还原,实在不行可以把除了0001和init文 ...
- 【python cookbook】【字符串与文本】5.查找和替换文本
问题:对字符串中的文本做查找和替换 解决方案: 1.对于简单模式:str.replace(old, new[, max]) 2.复杂模式:使用re模块中的re.sub(匹配的模式, newstring ...