如何使用Selenium开发域名自动购买bot 实现mitsu.in站点域名抢购功能
Selenium域名自动购买Bot实现步骤
1. 基础配置定义
提前定义可调参数与页面元素选择器,方便后续维护修改
from selenium import webdriver as wd from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException import chromedriver_binary import random import time # 自定义配置 TARGET_DOMAIN = "your-target-domain.com" # 替换为你要抢注的域名 RETRY_DELAY_RANGE = (3, 7) # 查询失败后重试的随机间隔,单位秒 # 页面元素选择器,可通过F12开发者工具自行调整适配站点更新 SEARCH_INPUT_SELECTOR = (By.NAME, "domain") SEARCH_BUTTON_SELECTOR = (By.XPATH, '//button[contains(text(), "Search")]') AVAILABLE_FLAG_SELECTOR = (By.XPATH, '//*[contains(text(), "Available")]') ADD_TO_CART_SELECTOR = (By.XPATH, '//button[contains(text(), "Add to Cart")]') # 原有初始化逻辑 driver = wd.Chrome() driver.implicitly_wait(10) driver.get("https://mitsu.in/domain-registration/index.php")
2. 封装域名状态查询函数
def check_domain_available() -> bool: # 清空搜索框并输入目标域名 search_input = driver.find_element(*SEARCH_INPUT_SELECTOR) search_input.clear() search_input.send_keys(TARGET_DOMAIN) # 点击搜索按钮 driver.find_element(*SEARCH_BUTTON_SELECTOR).click() time.sleep(random.uniform(1, 2)) # 等待结果加载,可根据网络情况调整 # 判断是否存在可注册标识 try: driver.find_element(*AVAILABLE_FLAG_SELECTOR) return True except NoSuchElementException: return False
3. 核心循环查询与购买逻辑
if __name__ == "__main__": while True: is_available = check_domain_available() if is_available: print(f"域名{TARGET_DOMAIN}可注册,开始进入购买流程") # 点击加入购物车 driver.find_element(*ADD_TO_CART_SELECTOR).click() # 后续支付流程自行补充: # 1. 若未登录先执行登录逻辑:输入账号密码点击登录 # 2. 进入结算页后填充联系人信息、选择支付方式 # 3. 点击支付按钮完成后续操作 break else: delay = random.uniform(*RETRY_DELAY_RANGE) print(f"域名{TARGET_DOMAIN}暂不可用,{delay:.1f}秒后重试") time.sleep(delay) # 刷新页面避免缓存影响查询结果 driver.refresh()
注意事项
- 所有元素选择器需要根据站点实际DOM结构调整,可通过浏览器F12开发者工具的元素选择器功能获取准确的XPath/ID/NAME属性
- 支付流程建议提前完成账号登录逻辑,可在初始化打开页面后先执行登录操作,避免结算时流程中断
- 可额外添加异常捕获逻辑处理页面加载失败、元素未找到等异常情况,提高脚本运行稳定性
- 不要将重试间隔设置过短,避免被站点反爬策略拦截
内容的提问来源于stack exchange,提问作者Ya Sh
相关产品推荐
相关产品推荐

