手速最快的是电竞选手?错了,是程序员
作者:互联网
一、排行榜截图
648KPM,足足高了第二名100多KPM!
大家也可以去试试自己的KPM有多少,打字测试网站:https://dazi.kukuw.com/
其实这并非手打的,而是使用了selenium来实现自动打字,并增加了一些防止作弊检测的手段,比如:
- 动态速度
- 随机输错、退格
- 错字修正
从而实现打字排行榜第一。
<<点我获取完整源码和【可直接运行】工具,或关注左侧公众号,回复:打字
二、实现效果
三、环境要求
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,比如:增加可选择登录用户、可自定义选择文章的功能。
标签:random,竞选,time,打字,程序员,randint,letter,error,手速 来源: https://blog.csdn.net/momoda118/article/details/122390624