下载地址:www.pan38.com/dow/share.p… 提取密码:8334
这个项目包含完整的自动化功能模块,使用时需要安装pyautogui, opencv-python, pynput等依赖库。抢单功能需要提前截取界面上的按钮图片作为识别依据。
import pyautogui import time import random from pynput import keyboard
class AutoClicker: def init(self): self.running = False self.listener = None
def start_clicking(self, interval=0.5, button='left'):
self.running = True
try:
while self.running:
pyautogui.click(button=button)
time.sleep(interval + random.uniform(-0.1, 0.1))
except KeyboardInterrupt:
self.stop_clicking()
def stop_clicking(self):
self.running = False
def hotkey_listener(self):
def on_press(key):
if key == keyboard.Key.f6:
self.start_clicking()
elif key == keyboard.Key.f7:
self.stop_clicking()
self.listener = keyboard.Listener(on_press=on_press)
self.listener.start()
import cv2 import numpy as np import pyautogui
class ImageLocator: def init(self, confidence=0.8): self.confidence = confidence
def locate_on_screen(self, image_path):
try:
location = pyautogui.locateOnScreen(image_path,
confidence=self.confidence)
return location
except Exception as e:
print(f"定位失败: {e}")
return None
def click_on_image(self, image_path, button='left'):
location = self.locate_on_screen(image_path)
if location:
center = pyautogui.center(location)
pyautogui.click(center.x, center.y, button=button)
return True
return False
def wait_until_appear(self, image_path, timeout=30):
start_time = time.time()
while time.time() - start_time < timeout:
if self.locate_on_screen(image_path):
return True
time.sleep(0.5)
return False
image_recognition import ImageLocator import time import random
class OrderGrabber: def init(self): self.locator = ImageLocator(confidence=0.9) self.refresh_interval = 3.0
def grab_order_loop(self, refresh_button_img, order_button_img):
while True:
try:
self.locator.click_on_image(refresh_button_img)
time.sleep(0.5 + random.uniform(0, 0.3))
if self.locator.click_on_image(order_button_img):
print("成功抢到订单!")
time.sleep(5) # 抢单成功后暂停5秒
else:
time.sleep(self.refresh_interval)
except KeyboardInterrupt:
print("停止抢单")
break