Ich habe versucht, mit Python ein Tippspiel zu spielen

Überblick

Ich habe ein englisches Wortschreibspiel mit optischer Zeichenerkennung durch Pytesseract und automatischer Tastatureingabe durch PyAutoGUI gespielt.

Typing Test English : https://10fastfingers.com/typing-test/english

Umgebung

OS:Windows10 64bit Python version : 3.5.3

Spielübersicht

capture2.jpg

Englische Wörter werden in dem von einem roten Rahmen umgebenen Bereich angezeigt, sodass Sie sie einfach in das Eingabeformular eingeben und um die Anzahl der Wörter konkurrieren können, die Sie in einer Minute eingeben können.

Hauptbibliotheken verwendet

selenium, PyAutoGUI, pytesseract, Pillow

Programmverhalten

main.py


# -*- coding: utf-8 -*-

from PIL import Image
from PIL import ImageGrab
import pytesseract
import numpy as np
import matplotlib.pyplot as plt
import pyautogui as pyag
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import cv2

os.chdir(os.path.dirname(os.path.abspath(__file__)))
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'

fig, ax = plt.subplots()
mngr = plt.get_current_fig_manager()
mngr.window.setGeometry(10,800,1300,250)
plt.pause(0.001)

url = "https://10fastfingers.com/typing-test/english"
chrome_driver_path = "chromedriver.exe"
chrome_options = Options()
chrome_options.add_argument("--window-position=0,0");
chrome_options.add_argument("--window-size=1000,600");
browser = webdriver.Chrome(chrome_driver_path, chrome_options=chrome_options)

print("Loading...")
browser.get(url)
time.sleep(3)

while(True):
    print("-----------------------------------------")
    print("Extracted words")
    print("-----------------------------------------")
    
    img = ImageGrab.grab(bbox=(120,308,1213,430))
    
    ax.imshow(img)
    plt.pause(0.001)

    img =  np.array(img)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
    img = cv2.threshold(img, 220, 255, cv2.THRESH_BINARY)[1]
    img = Image.fromarray(img)
    
    words  = pytesseract.image_to_string(img).split(" ")
            
    for word1 in words:
        if ("\n\n" in word1):
            word1 = word1.split("\n\n")
        elif ("\n" in word1):            
            word1 = word1.split("\n")
        else:
            word1 = [word1]
        
        for word2 in word1:
            print(word2)
            pyag.typewrite(word2.replace(" ", "") + " ")
            time.sleep(0.2)
            
    if len(words) < 10:
        print("Done!")
        break
    
time.sleep(3)

browser.quit()


  1. Greifen Sie auf Typing Test English auf Selen zu
  2. Erfassen Sie den Bereich innerhalb des roten Rahmens mit Pillow
  3. Extrahieren Sie englische Wörter aus Bildern, die mit pytesseract aufgenommen wurden
  4. Geben Sie automatisch englische Wörter ein, die von PyAutoGUI extrahiert wurden

↓ So funktioniert es video.gif

Fazit

Durch die Kombination der optischen Zeichenerkennung durch Pytesseract und der automatischen Tastatureingabe durch PyAutoGUI wird der Bereich der Browserautomatisierung erheblich erweitert.

Recommended Posts

Ich habe versucht, mit Python ein Tippspiel zu spielen
Ich habe versucht, Trumps Kartenspiel in Python zu implementieren
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe eine Klasse in Python erstellt und versucht, Enten zu tippen
Ich habe versucht, ein missverstandenes Gefangenendilemma in Python zu implementieren
Ich habe versucht, ein Python 3-Modul in C hinzuzufügen
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich habe Line Benachrichtigung in Python versucht
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
Ich habe versucht "Wie man eine Methode in Python dekoriert"
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich habe versucht, das Blackjack of Trump-Spiel mit Python zu implementieren
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, PPO in Python zu implementieren
Ich habe ein Passwort-Tool in Python erstellt.
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ein Memo, das ich schnell in Python geschrieben habe
Ich möchte mit Python ein Fenster erstellen
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich möchte ein Spiel mit Python machen
Ich habe eine Klasse in Python3 und Java geschrieben
Mach ein Janken-Spiel in einer Zeile (Python)
Ich habe versucht, TOPIC MODEL in Python zu implementieren
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
Ich habe versucht, das Verhalten von E / A-Eventlets in Python nicht zu blockieren
Ich habe versucht, alembic auszuführen, ein Migrationstool für Python
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Ich habe Python> Decorator ausprobiert
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe mit Python ein Bin-Picking-Spiel gemacht
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich habe versucht, ein scheinbar Windows-Snipper-Tool mit Python zu implementieren
Zeichne ein Diagramm mit Julia ... Ich habe eine kleine Analyse versucht
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich möchte eine Variable in einen Python-String einbetten
Ich habe mit Python ein Weihnachtsbaum-Beleuchtungsspiel gemacht
Ich habe versucht, TradeWave zu verwenden (BitCoin-Systemhandel in Python)
Spielen mit der benutzerlokalen API für künstliche Intelligenz in Python
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich habe versucht, Python aus einer Bat-Datei auszuführen
Ich möchte eine Datei mit Python zufällig testen
Ich habe versucht, Drakues Poker in Python zu implementieren
Ich möchte mit einem Roboter in Python arbeiten.