zoukankan      html  css  js  c++  java
  • 用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)

    这里用到了鼠标点击和键盘输入,需要分别安装PyMousePyUserInput,安装好之后,就可以实现鼠标的点击和键盘的输入操作了。关于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
    " % (event.x, event.y))
            self.edit.insert(Tkinter.END, "Screen_location x:%d y:%d
    " % (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,下不能虐菜。真是不想再玩下去,投了太多又不舍离开。唉,无奈。

  • 相关阅读:
    CSS
    Html5
    [LeetCode] 78. Subsets(子集)
    [LeetCode] 22. Generate Parentheses(括号生成器)
    [LeetCode] 406. Queue Reconstruction by Height(按身高重排队列)
    [LeetCode] 46. Permutations(全排列)
    [LeetCode] 94. Binary Tree Inorder Traversal(二叉树的中序遍历)
    [LeetCode] 338. Counting Bits(数比特位)
    [LeetCode] 763. Partition Labels(标签划分)
    [LeetCode] 20. Valid Parentheses(有效的括号)
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/5077959.html
Copyright © 2011-2022 走看看