手速最快的是电竞选手?错了,是程序员

一、排行榜截图

手速最快的是电竞选手?错了,是程序员


648KPM,足足高了第二名100多KPM!

大家也可以去试试自己的KPM有多少,打字测试网站:https://dazi.kukuw.com/


其实这并非手打的,而是使用了selenium来实现自动打字,并增加了一些防止作弊检测的手段,比如:

  1. 动态速度
  2. 随机输错、退格
  3. 错字修正

从而实现打字排行榜第一。

<<点我获取完整源码和【可直接运行】工具,或关注左侧公众号,回复:打字


二、实现效果

手速最快的是电竞选手?错了,是程序员


三、环境要求

1)安装谷歌浏览器,按下图步骤操作,找到谷歌浏览器的版本号:


手速最快的是电竞选手?错了,是程序员


手速最快的是电竞选手?错了,是程序员


2)然后访问:chromedriver下载地址,下载对应版本的chromedriver(大版本号相同即可),并放在打字工具的同目录下即可。


双击执行工具就可以看到效果了。


四、核心源码讲解

1.在每次循环打字前,设定打字的间隔时间:

 		wait_time = random.randint(12, 100)
        time.sleep(wait_time / 1000)  # 控制每次打字的间隔时间

2.另外设置故意打错的概率及要打错几个字:

        error_value = random.randint(1, 20)
        if error_value == 2:  # 当error_value等于2时,代表故意打错
            error_length = random.randint(1, 4)  # 需要打错几个字母
            for k in range(error_length):  # 进行打错操作
                letter_v = random.randint(97, 122)
                letter = chr(letter_v)  # 数字转换为字母
                time.sleep(wait_time / 1000)
                browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/input[2]''').send_keys(letter)

3.打错后,需要退格再重新输入正常的内容:

            for a in range(error_length):  # 进行退格操作
                keyboard.press(Key.backspace)
                keyboard.release(Key.backspace)
        browser.find_element(By.XPATH, '''//*[@id="i_''' + str(i) + '''"]/input[2]''').send_keys(j)

五、总结

整个代码内容不多,实现也很简单,小伙伴们可以自己拿到源码进行diy,比如:增加可选择登录用户、可自定义选择文章的功能。





上一篇:ERROR Error: Cannot find module ‘vue-loader-v16/package.json‘


下一篇:Python语言程序设计(一):基础语法(1)