python+selenium 抢小米mix 2s手机

博主分享了使用Python和Selenium自动化抢购小米MIX 2S手机的尝试,指出多账号同时抢购能提高成功率,并提供了源代码供读者参考,期待明日实战检验效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小米手机的确太难抢了,所以试着写了个程序玩下,还不知道行不行,明天试试!不过,还是要增加多个帐号一起抢,概率还是要大些,黄牛就是使用多帐号抢的!先附上源代码,有什么不对地方,大家帮忙指正!

#!/usr/bin/env python
# _*_ coding:utf-8 _*_

import time
import os
from selenium import webdriver


class SubscribeTel(object):
    def __init__(self, username, passwd):
        self.username = username
        self.passwd = passwd
        self.login_url = 'https://account.xiaomi.com/pass/serviceLogin'  # 小米登录网址
        self.login_sec = 'https://account.xiaomi.com/pass/auth/security/home'  # 小米登录成功后网址
        self.sub_url = 'https://item.mi.com/product/10000085.html'  # 小米min 2s 网址
        # 浏览器名称
        self.driver_name = 'firefox'  # chrome firefox
        # 火狐浏览器第三方驱动
        self.executable_path = os.getcwd()+'/geckodriver'  # 获取工程目录下的火狐驱动 chromedriver

    def login(self):
        # 访问登录网址
        self.browser.get(self.login_url)
        # 填充用户名
        self.browser.find_element_by_name('user').send_keys(self.username)
        time.sleep(0.3)
        # 填充密码
        self.browser.find_element_by_name('password').send_keys(self.passwd)
        # 登录
        self.browser.find_element_by_id('login-button').click()
        # 循环等待登录,登录成功,跳出循环
        while True:
            if self.browser.current_url[:50] != self.login_sec:
                time.sleep(1)
            else:
                # logbticket.info("登陆成功...")
                print('登录成功...')
                break

    def start_sub(self):
        # 创建一个浏览器对象
        self.browser = webdriver.Firefox()
        # 设置窗口大小尺寸
        self.browser.set_window_size(1400, 1000)
        # 用户登录
        self.login()
        # 进入预购页面
        self.browser.get(self.sub_url)
        self.browser.implicitly_wait(2)
        if self.browser.find_element_by_xpath("//a[@data-name='立即预约']"):
            self.browser.find_element_by_xpath("//a[@data-name='立即预约']").click()
        # 选择内存
        self.browser.find_element_by_xpath("//li[@data-name='6GB+128GB']").click()
        # 选择颜色
        self.browser.find_element_by_xpath("//img[@alt='白色']").click()
        while True:
            times = self.browser.find_element_by_xpath("//span[@class='time J_orderTime']").text
            if times == u'剩 00 时 00 分 00 秒':
                self.browser.find_element_by_xpath("//a[@data-name='加入购物车']").click()
                print('加入购物车成功...')
                break
            else:
                time.sleep(0.5)


if __name__ == '__main__':
    username = 'xxxxxxxxx'
    passwd = 'xxxxxxx'
    Tel = SubscribeTel(username, passwd)
    Tel.start_sub()


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值